Re: [PATCH v2] uapi/auxvec: Define AT_HWCAP3 and AT_HWCAP4 aux vector, entries
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2024-02-16 01:50:02
Also in:
linux-arch, linuxppc-dev, lkml
Peter Bergner [off-list ref] writes:
On 2/15/24 2:16 AM, Arnd Bergmann wrote:quoted
On Wed, Feb 14, 2024, at 23:34, Peter Bergner wrote:quoted
The powerpc toolchain keeps a copy of the HWCAP bit masks in our TCB for fast access by the __builtin_cpu_supports built-in function. The TCB space for the HWCAP entries - which are created in pairs - is an ABI extension, so waiting to create the space for HWCAP3 and HWCAP4 until we need them is problematical. Define AT_HWCAP3 and AT_HWCAP4 in the generic uapi header so they can be used in glibc to reserve space in the powerpc TCB for their future use. I scanned through the Linux and GLIBC source codes looking for unused AT_* values and 29 and 30 did not seem to be used, so they are what I went with. This has received Acked-by's from both GLIBC and Linux kernel developers and no reservations or Nacks from anyone. Arnd, we seem to have consensus on the patch below. Is this something you could take and apply to your tree?I don't mind taking it, but it may be better to use the powerpc tree if that is where it's actually being used.So this is not a powerpc only patch, but we may be the first arch to use it. Szabolcs mentioned that aarch64 was pretty quickly filling up their AT_HWCAP2 and that they will eventually require using AT_HWCAP3 as well. If you still think this should go through the powerpc tree, I can check on that.
I'm happy to take it with Arnd's ack.
I trimmed up the commit message a bit, see below.
cheers
Author: Peter Bergner [off-list ref]
AuthorDate: Wed Feb 14 16:34:06 2024 -0600
Commit: Michael Ellerman [off-list ref]
CommitDate: Fri Feb 16 12:42:59 2024 +1100
uapi/auxvec: Define AT_HWCAP3 and AT_HWCAP4 aux vector, entries
The powerpc toolchain keeps a copy of the HWCAP bit masks in the TCB
for fast access by the __builtin_cpu_supports() built-in function. The
TCB space for the HWCAP entries - which are created in pairs - is an ABI
extension, so waiting to create the space for HWCAP3 and HWCAP4 until
they are needed is problematic. Define AT_HWCAP3 and AT_HWCAP4 in the
generic uapi header so they can be used in glibc to reserve space in the
powerpc TCB for their future use.
I scanned through the Linux and GLIBC source codes looking for unused
AT_* values and 29 and 30 did not seem to be used, so they are what I
went with.
Signed-off-by: Peter Bergner [off-list ref]
Acked-by: Adhemerval Zanella [off-list ref]
Acked-by: Nicholas Piggin [off-list ref]
Acked-by: Szabolcs Nagy [off-list ref]
Acked-by: Arnd Bergmann [off-list ref]
Signed-off-by: Michael Ellerman [off-list ref]
Link: https://msgid.link/a406b535-dc55-4856-8ae9-5a063644a1af@linux.ibm.com