mirror of git://sourceware.org/git/glibc.git
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 | ||
| Makefile | ||
| Versions | ||
| 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 | ||
| string_private.h | ||
| tininess.h | ||
| tst-get-cpu-features-static.c | ||
| tst-get-cpu-features.c | ||