arm64/sve: Document our actual ABI for clearing registers on syscall
authorMark Brown <broonie@kernel.org>
Mon, 29 Aug 2022 16:25:01 +0000 (17:25 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 6 Sep 2022 17:47:11 +0000 (18:47 +0100)
commitd09ee410a3c30345af87f46dafd2ae308b17c0af
treef1ca0818e3529e88ac051cb4fdf1b017c26c2ed0
parentb90cb1053190353cc30f0fef0ef1f378ccc063c5
arm64/sve: Document our actual ABI for clearing registers on syscall

Currently our ABI documentation says that the state of the bits in the Z
registers not shared with the V registers becomes undefined on syscall but
our actual implementation unconditionally clears these bits. Taking
advantage of the flexibility of our documented ABI would be a change in the
observable ABI so there is concern around doing so, instead document the
actual behaviour so that it is more discoverable for userspace programmers
who might be able to take advantage of it and to record our decision about
not changing the kernel ABI.

This makes qemu's user mode implementation buggy since it does not clear
these bits.

Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20220829162502.886816-3-broonie@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Documentation/arm64/sve.rst