mirror of
git://sourceware.org/git/glibc.git
synced 2024-12-09 04:11:27 +08:00
ca6e601a9d
This uses atomic operations to access lock elision metadata that is accessed concurrently (ie, adapt_count fields). The size of the data is less than a word but accessed only with atomic loads and stores; therefore, we add support for shorter-size atomic load and stores too. * include/atomic.h (__atomic_check_size_ls): New. (atomic_load_relaxed, atomic_load_acquire, atomic_store_relaxed, atomic_store_release): Use it. * sysdeps/x86/elide.h (ACCESS_ONCE): Remove. (elision_adapt, ELIDE_LOCK): Use atomics. * sysdeps/unix/sysv/linux/x86/elision-lock.c (__lll_lock_elision): Use atomics and improve code comments. * sysdeps/unix/sysv/linux/x86/elision-trylock.c (__lll_trylock_elision): Likewise. |
||
---|---|---|
.. | ||
bits | ||
fpu | ||
cacheinfo.c | ||
cpu-features-offsets.sym | ||
cpu-features.c | ||
cpu-features.h | ||
dl-get-cpu-features.c | ||
elide.h | ||
fpu_control.h | ||
init-arch.h | ||
libc-start.c | ||
linkmap.h | ||
Makefile | ||
string_private.h | ||
tininess.h | ||
tst-get-cpu-features-static.c | ||
tst-get-cpu-features.c | ||
Versions |