]> www.infradead.org Git - users/jedix/linux-maple.git/commit
arm64/ptrace: Clarify documentation of VL configuration via ptrace
authorMark Brown <broonie@kernel.org>
Wed, 6 Nov 2024 17:41:32 +0000 (17:41 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 12 Nov 2024 14:53:34 +0000 (14:53 +0000)
commitc0139f6cbb1fc6438509467ec0455a200cc49a43
tree01f3ce3e55568ba4d621e31de9952221e48ee308
parentf95382d73ec8bfee2b4a00b2ac4aa4530f7c4af3
arm64/ptrace: Clarify documentation of VL configuration via ptrace

When we configure SVE, SSVE or ZA via ptrace we allow the user to configure
the vector length and specify any of the flags that are accepted when
configuring via prctl(). This includes the S[VM]E_SET_VL_ONEXEC flag which
defers the configuration of the VL until an exec(). We don't do anything to
limit the provision of register data as part of configuring the _ONEXEC VL
but as a function of the VL enumeration support we do this will be
interpreted using the vector length currently configured for the process.

This is all a bit surprising, and probably we should just not have allowed
register data to be specified with _ONEXEC, but it's our ABI so let's
add some explicit documentation in both the ABI documents and the source
calling out what happens.

The comments are also missing the fact that since SME does not have a
mandatory 128 bit VL it is possible for VL enumeration to result in the
configuration of a higher VL than was requested, cover that too.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20241106-arm64-sve-ptrace-vl-set-v1-1-3b164e8b559c@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Documentation/arch/arm64/sme.rst
Documentation/arch/arm64/sve.rst
arch/arm64/kernel/ptrace.c