[PATCH 2/2] aarch64: add HWCAP_ATOMICS to HWCAP_IMPORTANT
Szabolcs Nagy
szabolcs.nagy@arm.com
Fri Jul 6 15:25:00 GMT 2018
On 28/06/18 19:25, Szabolcs Nagy wrote:
> This enables searching shared libraries in atomics/ when the hardware
> supports LSE atomics of armv8.1 so one can provide optimized variants
> of libraries in a portable way.
>
> LSE atomics does not affect library abi, the new instructions can
> interoperate with old ones.
>
> I considered the earlier comments on the patch
>
> https://sourceware.org/ml/libc-alpha/2018-04/msg00400.html
> https://sourceware.org/ml/libc-alpha/2018-04/msg00625.html
>
> It turns out that the way glibc dynamic linker decides on the search
> path is not very flexible: it wants to use hwcap bits and associated
> strings. So some targets reuse hwcap bits for glibc internal purposes
> to affect the search logic. But hwcap is an interface with the kernel,
> glibc should not allocate bits in it for its internal logic as that
> limits future hwcap extensions and confusing to users who expect to see
> hwcap bits in ifunc resolvers. Instead of rewriting the dynamic linker
> path logic (which affects all targets) this patch just uses the existing
> mechanism, however this means that the path name has to be the hwcap
> name "atomics" and cannot be changed to something more meaningful to
> users.
>
> It is hard to tell how much performance benefit this can give, in
> principle armv8.1 atomics can be better optimized in the hardware, so it
> can make a difference for synchronization heavy code. On some systems
> such multilib setup may be the only viable way to get optimized
> libraries used.
>
committed.
distros were not enthusiastic about this approach, but
in the worst case nobody will use these "atomics/" paths
(and we waste a few open syscalls) and in the best case
it enables performance improvement for some users.
> 2018-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
>
> Â Â Â Â * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h (HWCAP_IMPORTANT): Add
> Â Â Â Â HWCAP_ATOMICS.
> ---
> Â sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h | 2 +-
> Â 1 file changed, 1 insertion(+), 1 deletion(-)
More information about the Libc-alpha
mailing list