glibc/nptl
Wangyang Guo ea69248445 nptl: Add backoff mechanism to spinlock loop
When mutiple threads waiting for lock at the same time, once lock owner
releases the lock, waiters will see lock available and all try to lock,
which may cause an expensive CAS storm.

Binary exponential backoff with random jitter is introduced. As try-lock
attempt increases, there is more likely that a larger number threads
compete for adaptive mutex lock, so increase wait time in exponential.
A random jitter is also added to avoid synchronous try-lock from other
threads.

v2: Remove read-check before try-lock for performance.

v3:
1. Restore read-check since it works well in some platform.
2. Make backoff arch dependent, and enable it for x86_64.
3. Limit max backoff to reduce latency in large critical section.

v4: Fix strict-prototypes error in sysdeps/nptl/pthread_mutex_backoff.h

v5: Commit log updated for regression in large critical section.

Result of pthread-mutex-locks bench

Test Platform: Xeon 8280L (2 socket, 112 CPUs in total)
First Row: thread number
First Col: critical section length
Values: backoff vs upstream, time based, low is better

non-critical-length: 1
	1	2	4	8	16	32	64	112	140
0	0.99	0.58	0.52	0.49	0.43	0.44	0.46	0.52	0.54
1	0.98	0.43	0.56	0.50	0.44	0.45	0.50	0.56	0.57
2	0.99	0.41	0.57	0.51	0.45	0.47	0.48	0.60	0.61
4	0.99	0.45	0.59	0.53	0.48	0.49	0.52	0.64	0.65
8	1.00	0.66	0.71	0.63	0.56	0.59	0.66	0.72	0.71
16	0.97	0.78	0.91	0.73	0.67	0.70	0.79	0.80	0.80
32	0.95	1.17	0.98	0.87	0.82	0.86	0.89	0.90	0.90
64	0.96	0.95	1.01	1.01	0.98	1.00	1.03	0.99	0.99
128	0.99	1.01	1.01	1.17	1.08	1.12	1.02	0.97	1.02

non-critical-length: 32
	1	2	4	8	16	32	64	112	140
0	1.03	0.97	0.75	0.65	0.58	0.58	0.56	0.70	0.70
1	0.94	0.95	0.76	0.65	0.58	0.58	0.61	0.71	0.72
2	0.97	0.96	0.77	0.66	0.58	0.59	0.62	0.74	0.74
4	0.99	0.96	0.78	0.66	0.60	0.61	0.66	0.76	0.77
8	0.99	0.99	0.84	0.70	0.64	0.66	0.71	0.80	0.80
16	0.98	0.97	0.95	0.76	0.70	0.73	0.81	0.85	0.84
32	1.04	1.12	1.04	0.89	0.82	0.86	0.93	0.91	0.91
64	0.99	1.15	1.07	1.00	0.99	1.01	1.05	0.99	0.99
128	1.00	1.21	1.20	1.22	1.25	1.31	1.12	1.10	0.99

non-critical-length: 128
	1	2	4	8	16	32	64	112	140
0	1.02	1.00	0.99	0.67	0.61	0.61	0.61	0.74	0.73
1	0.95	0.99	1.00	0.68	0.61	0.60	0.60	0.74	0.74
2	1.00	1.04	1.00	0.68	0.59	0.61	0.65	0.76	0.76
4	1.00	0.96	0.98	0.70	0.63	0.63	0.67	0.78	0.77
8	1.01	1.02	0.89	0.73	0.65	0.67	0.71	0.81	0.80
16	0.99	0.96	0.96	0.79	0.71	0.73	0.80	0.84	0.84
32	0.99	0.95	1.05	0.89	0.84	0.85	0.94	0.92	0.91
64	1.00	0.99	1.16	1.04	1.00	1.02	1.06	0.99	0.99
128	1.00	1.06	0.98	1.14	1.39	1.26	1.08	1.02	0.98

There is regression in large critical section. But adaptive mutex is
aimed for "quick" locks. Small critical section is more common when
users choose to use adaptive pthread_mutex.

Signed-off-by: Wangyang Guo <wangyang.guo@intel.com>
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
(cherry picked from commit 8162147872)
2022-09-28 07:34:53 -07:00
..
alloca_cutoff.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
allocatestack.c nptl: Handle spurious EINTR when thread cancellation is disabled (BZ#29029) 2022-04-15 09:52:54 -03:00
cancellation.c nptl: Handle spurious EINTR when thread cancellation is disabled (BZ#29029) 2022-04-15 09:52:54 -03:00
cleanup_compat.c nptl: Export _pthread_cleanup_push, _pthread_cleanup_pop again 2021-06-15 21:19:16 +02:00
cleanup_defer_compat.c nptl: Move legacy cancelation handling into libc as compat symbols 2021-04-21 19:49:50 +02:00
cleanup_defer.c nptl: Fix ___pthread_unregister_cancel_restore asynchronous restore 2022-07-13 13:23:20 -03:00
cleanup_routine.c nptl: Move __pthread_cleanup_routine into libc 2021-04-21 19:49:50 +02:00
cleanup.c nptl: Move __pthread_register_cancel, __pthread_unregister_cancel to libc 2021-05-11 20:20:58 +02:00
cond-perf.c
default-sched.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
descr.h nptl: Handle spurious EINTR when thread cancellation is disabled (BZ#29029) 2022-04-15 09:52:54 -03:00
DESIGN-systemtap-probes.txt nptl: Add POSIX-proposed pthread_mutex_clocklock 2019-07-12 13:36:25 +00:00
elision-conf.c nptl: Move elision implementations into libc 2021-02-23 14:59:34 +01:00
elision-conf.h
elision-lock.c nptl: Move elision implementations into libc 2021-02-23 14:59:34 +01:00
elision-timed.c nptl: Move elision implementations into libc 2021-02-23 14:59:34 +01:00
elision-trylock.c nptl: Move elision implementations into libc 2021-02-23 14:59:34 +01:00
elision-unlock.c nptl: Move elision implementations into libc 2021-02-23 14:59:34 +01:00
errno-loc.c
events.c nptl: Move __nptl_create_event, __nptl_death_event into libc 2021-05-17 10:06:44 +02:00
futex-internal.c linux: Only use 64-bit syscall if required for internal futex 2021-06-22 12:09:52 -03:00
libc_multiple_threads.c Force building with -fno-common 2021-07-09 20:09:14 +02:00
libc-cleanup.c nptl: Fix __libc_cleanup_pop_restore asynchronous restore (BZ#29214) 2022-06-08 17:15:08 -03:00
libpthread-compat.c nptl: Remove remaining code from libpthread 2021-05-21 22:35:01 +02:00
lowlevellock.c Force building with -fno-common 2021-07-09 20:09:14 +02:00
Makefile Move malloc hooks into a compat DSO 2021-07-22 18:37:59 +05:30
nptl_deallocate_tsd.c nptl: Move __nptl_deallocate_tsd into libc 2021-04-21 19:49:50 +02:00
nptl_free_tcb.c nptl: Move __free_tcb into libc 2021-05-11 11:24:36 +02:00
nptl_lock_constants.pysym New pthread rwlock that is more scalable. 2017-01-10 11:50:17 +01:00
nptl_nthreads.c nptl: Move internal __nptl_nthreads variable into libc 2021-04-21 19:49:50 +02:00
nptl_setxid.c nptl: Move setxid broadcast implementation into libc 2021-04-21 19:49:51 +02:00
nptl-printers.py Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
nptl-stack.c nptl: Add glibc.pthread.stack_cache_size tunable 2021-06-28 16:41:58 +02:00
nptl-stack.h nptl: Add glibc.pthread.stack_cache_size tunable 2021-06-28 16:41:58 +02:00
nptlfreeres.c nptl: Move stack cache management, __libpthread_freeres into libc 2021-05-11 11:22:33 +02:00
old_pthread_cond_broadcast.c nptl: Move core condition variable functions into libc 2021-04-21 19:49:51 +02:00
old_pthread_cond_destroy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
old_pthread_cond_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
old_pthread_cond_signal.c nptl: Move core condition variable functions into libc 2021-04-21 19:49:51 +02:00
old_pthread_cond_timedwait.c nptl: Move core condition variable functions into libc 2021-04-21 19:49:51 +02:00
old_pthread_cond_wait.c nptl: Move core condition variable functions into libc 2021-04-21 19:49:51 +02:00
perf.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_copy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_destroy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_extension.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_getaffinity.c nptl: Move pthread_attr_getaffinity_np into libc 2021-05-11 19:32:56 +02:00
pthread_attr_getdetachstate.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_getguardsize.c nptl: Move pthread_attr_getguardsize into libc 2021-05-11 19:33:10 +02:00
pthread_attr_getinheritsched.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_getschedparam.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_getschedpolicy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_getscope.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_getsigmask.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_getstack.c nptl: Move pthread_attr_getstack into libc 2021-05-11 19:33:11 +02:00
pthread_attr_getstackaddr.c nptl: Move pthread_attr_getstackaddr into libc 2021-05-11 19:33:13 +02:00
pthread_attr_getstacksize.c nptl: Move pthread_attr_getstacksize into libc 2021-05-11 19:33:14 +02:00
pthread_attr_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_setaffinity.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_setdetachstate.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_setguardsize.c nptl: Move pthread_attr_setguardsize into libc 2021-05-11 19:33:15 +02:00
pthread_attr_setinheritsched.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_setschedparam.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_setschedpolicy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_setscope.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_setsigmask_internal.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_setsigmask.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_attr_setstack.c nptl: Move pthread_attr_setstack into libc 2021-05-11 19:33:17 +02:00
pthread_attr_setstackaddr.c nptl: Move pthread_attr_setstackaddr into libc 2021-05-11 19:33:19 +02:00
pthread_attr_setstacksize.c nptl: Move pthread_attr_setstacksize into libc 2021-05-11 19:33:20 +02:00
pthread_barrier_destroy.c nptl: Move pthread_barrier_destroy into libc 2021-05-06 15:56:37 +02:00
pthread_barrier_init.c nptl: Reduce the GLIBC_PRIVATE ABI 2021-07-07 08:41:21 +02:00
pthread_barrier_wait.c nptl: Reduce the GLIBC_PRIVATE ABI 2021-07-07 08:41:21 +02:00
pthread_barrierattr_destroy.c nptl: Move pthread_barrierattr_destroy into libc 2021-05-06 15:56:37 +02:00
pthread_barrierattr_getpshared.c nptl: Move pthread_barrierattr_getpshared into libc 2021-05-06 15:56:37 +02:00
pthread_barrierattr_init.c nptl: Move pthread_barrierattr_init into libc 2021-05-06 15:56:37 +02:00
pthread_barrierattr_setpshared.c nptl: Move pthread_barrierattr_setpshared into libc 2021-05-06 15:56:37 +02:00
pthread_cancel.c nptl: Fix pthread_cancel cancelhandling atomic operations 2022-04-20 12:22:34 -03:00
pthread_cleanup_upto.c nptl: Move __pthread_cleanup_upto into libc 2021-04-21 19:49:50 +02:00
pthread_clockjoin.c y2038: Add support for 64-bit time on legacy ABIs 2021-06-15 10:42:11 -03:00
pthread_cond_broadcast.c nptl: Move cnd_broadcast into libc 2021-05-03 08:14:17 +02:00
pthread_cond_common.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_cond_destroy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_cond_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_cond_signal.c nptl: Move cnd_signal into libc 2021-05-03 08:14:49 +02:00
pthread_cond_wait.c nptl: Reduce the GLIBC_PRIVATE ABI 2021-07-07 08:41:21 +02:00
pthread_condattr_destroy.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_condattr_getclock.c nptl: Move pthread_condattr_getclock into libc 2021-04-23 10:55:07 +02:00
pthread_condattr_getpshared.c nptl: Move pthread_condattr_getpshared into libc 2021-04-23 11:00:53 +02:00
pthread_condattr_init.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_condattr_setclock.c nptl: Move pthread_condattr_setclock into libc 2021-04-23 11:02:54 +02:00
pthread_condattr_setpshared.c nptl: Move pthread_condattr_setpshared into libc 2021-04-23 11:17:10 +02:00
pthread_create.c nptl: Do not set signal mask on second setjmp return [BZ #28607] 2021-11-24 09:22:10 +01:00
pthread_detach.c nptl: Move pthread_detach, thrd_detach into libc 2021-05-11 11:24:39 +02:00
pthread_equal.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_exit.c nptl: Move pthread_exit into libc 2021-04-21 19:49:50 +02:00
pthread_getaffinity.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_getattr_default_np.c nptl: Move pthread_create, thrd_create into libc 2021-05-21 22:35:00 +02:00
pthread_getattr_np.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_getconcurrency.c nptl: Move pthread_getconcurrency, pthread_setconcurrency into libc 2021-05-11 20:33:14 +02:00
pthread_getcpuclockid.c nptl: Move pthread_getcpuclockid into libc 2021-05-17 10:25:11 +02:00
pthread_getname.c nptl: Move pthread_getname_np into libc 2021-05-17 10:25:12 +02:00
pthread_getschedparam.c Linux: Move aio_init from librt into libc 2021-06-25 11:48:25 +02:00
pthread_getspecific.c nptl: Move tss_get into libc 2021-05-03 08:18:01 +02:00
pthread_join_common.c nptl: Handle spurious EINTR when thread cancellation is disabled (BZ#29029) 2022-04-15 09:52:54 -03:00
pthread_join.c nptl: Move thread join functions into libc 2021-05-11 11:24:39 +02:00
pthread_key_create.c nptl: Move pthread_key_create, __pthread_key_create into libc 2021-04-21 19:49:51 +02:00
pthread_key_delete.c nptl: Move tss_delete into libc 2021-05-03 08:17:38 +02:00
pthread_keys.c Force building with -fno-common 2021-07-09 20:09:14 +02:00
pthread_kill_other_threads.c nptl: Move pthread_kill_other_threads_np compatibility symbol into libc 2021-04-22 19:50:16 +02:00
pthread_kill.c nptl: pthread_kill must send signals to a specific thread [BZ #28407] 2021-10-01 18:18:15 +02:00
pthread_mutex_cond_lock.c nptl: Move core mutex functions into libc 2021-04-21 19:49:51 +02:00
pthread_mutex_conf.c nptl: Add glibc.pthread.stack_cache_size tunable 2021-06-28 16:41:58 +02:00
pthread_mutex_consistent.c nptl: Move pthread_mutex_consistent into libc 2021-04-21 19:49:50 +02:00
pthread_mutex_destroy.c nptl: Move mtx_destroy into libc 2021-05-03 08:15:15 +02:00
pthread_mutex_getprioceiling.c nptl: Move pthread_mutex_getprioceiling into libc 2021-04-23 09:42:51 +02:00
pthread_mutex_init.c nptl: Move mtx_init into libc 2021-05-03 08:15:22 +02:00
pthread_mutex_lock.c nptl: Add backoff mechanism to spinlock loop 2022-09-28 07:34:53 -07:00
pthread_mutex_setprioceiling.c nptl: Move pthread_mutex_setprioceiling into libc 2021-04-23 09:43:08 +02:00
pthread_mutex_timedlock.c Move assignment out of the CAS condition 2022-09-28 07:33:49 -07:00
pthread_mutex_trylock.c nptl: Move mtx_trylock into libc 2021-05-03 08:15:58 +02:00
pthread_mutex_unlock.c nptl: Remove GLIBC_2.34 versions of __pthread_mutex_lock, __pthread_mutex_unlock 2021-07-07 08:41:17 +02:00
pthread_mutexattr_destroy.c nptl: Move pthread_mutexattr_destroy into libc 2021-04-23 09:44:49 +02:00
pthread_mutexattr_getprioceiling.c nptl: Move pthread_mutexattr_getprioceiling into libc 2021-04-23 09:45:09 +02:00
pthread_mutexattr_getprotocol.c nptl: Move pthread_mutexattr_getprotocol into libc 2021-04-23 09:45:29 +02:00
pthread_mutexattr_getpshared.c nptl: Move pthread_mutexattr_getpshared into libc 2021-04-23 09:45:48 +02:00
pthread_mutexattr_getrobust.c nptl: Move pthread_mutexattr_getrobust into libc 2021-04-23 09:46:03 +02:00
pthread_mutexattr_gettype.c nptl: Move pthread_mutexattr_gettype into libc 2021-04-23 09:51:19 +02:00
pthread_mutexattr_init.c nptl: Move mtx_init into libc 2021-05-03 08:15:22 +02:00
pthread_mutexattr_setprioceiling.c nptl: Move pthread_mutexattr_setprioceiling into libc 2021-04-23 09:51:57 +02:00
pthread_mutexattr_setprotocol.c nptl: Move pthread_mutexattr_setprotocol into libc 2021-04-23 09:51:57 +02:00
pthread_mutexattr_setpshared.c nptl: Move pthread_mutexattr_setpshared into libc 2021-04-23 09:51:57 +02:00
pthread_mutexattr_setrobust.c nptl: Move pthread_mutexattr_setrobust into libc 2021-04-23 09:51:57 +02:00
pthread_mutexattr_settype.c nptl: Move mtx_init into libc 2021-05-03 08:15:22 +02:00
pthread_once.c nptl: Move call_once into libc 2021-05-03 08:14:01 +02:00
pthread_rwlock_clockrdlock.c y2038: Add support for 64-bit time on legacy ABIs 2021-06-15 10:42:11 -03:00
pthread_rwlock_clockwrlock.c y2038: Add support for 64-bit time on legacy ABIs 2021-06-15 10:42:11 -03:00
pthread_rwlock_common.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_rwlock_destroy.c nptl: Move pthread_rwlock_destroy into libc 2021-05-03 09:17:36 +02:00
pthread_rwlock_init.c nptl: Move pthread_rwlock_init into libc 2021-05-03 09:17:59 +02:00
pthread_rwlock_rdlock.c nptl: Move rwlock functions with forwarders into libc 2021-04-21 19:49:51 +02:00
pthread_rwlock_timedrdlock.c y2038: Add support for 64-bit time on legacy ABIs 2021-06-15 10:42:11 -03:00
pthread_rwlock_timedwrlock.c y2038: Add support for 64-bit time on legacy ABIs 2021-06-15 10:42:11 -03:00
pthread_rwlock_tryrdlock.c nptl: Move pthread_rwlock_tryrdlock into libc 2021-05-03 09:18:16 +02:00
pthread_rwlock_trywrlock.c nptl: Move pthread_rwlock_trywrlock into libc 2021-05-03 09:18:20 +02:00
pthread_rwlock_unlock.c nptl: Move rwlock functions with forwarders into libc 2021-04-21 19:49:51 +02:00
pthread_rwlock_wrlock.c nptl: Move rwlock functions with forwarders into libc 2021-04-21 19:49:51 +02:00
pthread_rwlockattr_destroy.c nptl: Move pthread_rwlockattr_destroy into libc 2021-05-03 09:18:25 +02:00
pthread_rwlockattr_getkind_np.c nptl: Move pthread_rwlockattr_getkind_np into libc 2021-05-03 09:18:31 +02:00
pthread_rwlockattr_getpshared.c nptl: Move pthread_rwlockattr_getpshared into libc 2021-05-03 09:18:35 +02:00
pthread_rwlockattr_init.c nptl: Move pthread_rwlockattr_init into libc 2021-05-03 09:18:38 +02:00
pthread_rwlockattr_setkind_np.c nptl: Move pthread_rwlockattr_setkind_np into libc 2021-05-03 09:18:42 +02:00
pthread_rwlockattr_setpshared.c nptl: Move pthread_rwlockattr_setpshared into libc 2021-05-03 09:18:45 +02:00
pthread_self.c nptl: Implement raise in terms of pthread_kill 2021-06-09 15:16:45 -03:00
pthread_setaffinity.c nptl: Move pthread_setaffinity_np into libc 2021-05-17 10:25:12 +02:00
pthread_setattr_default_np.c nptl: Move pthread_setattr_default_np into libc 2021-05-11 11:10:03 +02:00
pthread_setcancelstate.c nptl: Handle spurious EINTR when thread cancellation is disabled (BZ#29029) 2022-04-15 09:52:54 -03:00
pthread_setcanceltype.c nptl: Handle spurious EINTR when thread cancellation is disabled (BZ#29029) 2022-04-15 09:52:54 -03:00
pthread_setconcurrency.c nptl: Move pthread_getconcurrency, pthread_setconcurrency into libc 2021-05-11 20:33:14 +02:00
pthread_setname.c nptl: Move pthread_setname_np into libc 2021-05-17 10:25:12 +02:00
pthread_setschedparam.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_setschedprio.c nptl: Move pthread_setschedprio into libc 2021-05-17 10:25:12 +02:00
pthread_setspecific.c nptl: Move tss_set into libc 2021-05-03 08:18:08 +02:00
pthread_sigmask.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
pthread_sigqueue.c nptl: Move pthread_sigqueue into libc 2021-05-17 10:25:12 +02:00
pthread_spin_destroy.c nptl: Move pthread_spin_destroy into libc 2021-04-23 17:06:42 +02:00
pthread_spin_init.c nptl: Move pthread_spin_init, Move pthread_spin_unlock into libc 2021-04-23 17:06:44 +02:00
pthread_spin_lock.c nptl: Move pthread_spin_lock into libc 2021-04-23 17:06:46 +02:00
pthread_spin_trylock.c nptl: Move pthread_spin_trylock into libc 2021-04-23 17:06:48 +02:00
pthread_spin_unlock.c nptl: Move pthread_spin_init, Move pthread_spin_unlock into libc 2021-04-23 17:06:44 +02:00
pthread_testcancel.c nptl: Handle spurious EINTR when thread cancellation is disabled (BZ#29029) 2022-04-15 09:52:54 -03:00
pthread_timedjoin.c y2038: Add support for 64-bit time on legacy ABIs 2021-06-15 10:42:11 -03:00
pthread_tryjoin.c nptl: Move thread join functions into libc 2021-05-11 11:24:39 +02:00
pthread_yield.c nptl: Move pthread_yield into libc, as a compatibility symbol 2021-05-03 09:23:44 +02:00
pthread-pi-defines.sym
sem_clockwait.c y2038: Add support for 64-bit time on legacy ABIs 2021-06-15 10:42:11 -03:00
sem_destroy.c nptl: Move sem_destroy into libc 2021-05-05 17:19:40 +02:00
sem_getvalue.c nptl: Move sem_getvalue into libc 2021-05-05 17:19:43 +02:00
sem_init.c nptl: Move sem_init into libc 2021-05-05 17:19:45 +02:00
sem_post.c nptl: Move sem_post into libc 2021-05-05 17:19:47 +02:00
sem_timedwait.c y2038: Add support for 64-bit time on legacy ABIs 2021-06-15 10:42:11 -03:00
sem_wait.c nptl: Move sem_trywait, sem_wait into libc 2021-05-05 17:19:53 +02:00
sem_waitcommon.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
semaphoreP.h nptl: Move sem_timedwait into libc 2021-05-05 17:19:48 +02:00
shlib-versions Remove configuration name patterns from shlib-versions. 2014-09-12 12:28:47 +00:00
test-cond-printers.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-cond-printers.py Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-condattr-printers.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-condattr-printers.py Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-mutex-printers.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-mutex-printers.py Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-mutexattr-printers.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-mutexattr-printers.py Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-rwlock-printers.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-rwlock-printers.py Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-rwlockattr-printers.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
test-rwlockattr-printers.py Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
thrd_current.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
thrd_yield.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
TODO
TODO-kernel
TODO-testing
tpp.c nptl: Move the internal thread priority protection symbols into libc 2021-04-21 19:49:51 +02:00
tst-attr2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-attr3.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-audit-threads-mod1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-audit-threads-mod2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-audit-threads.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-audit-threads.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-barrier5.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cancel4_1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cancel4_2-time64.c y2038: Add test coverage 2021-06-15 10:42:11 -03:00
tst-cancel4_2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cancel7.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cancel17.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cancel24-static.cc
tst-cancel24.cc
tst-cancelx7.c
tst-cancelx17.c
tst-cleanup4.c nptl: Move legacy cancelation handling into libc as compat symbols 2021-04-21 19:49:50 +02:00
tst-cleanup4aux.c nptl: Move legacy cancelation handling into libc as compat symbols 2021-04-21 19:49:50 +02:00
tst-cleanupx4.c
tst-cleanupx4aux.c Compile tst-cleanupx4 test with -fexceptions 2016-06-29 20:24:44 -07:00
tst-clock2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-compat-forwarder-mod.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-compat-forwarder.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-cond22.c htl: Enable more tests 2020-06-07 13:35:54 +02:00
tst-cond26.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-context1.c Define PTHREAD_STACK_MIN to sysconf(_SC_THREAD_STACK_MIN) 2021-07-09 15:10:35 -07:00
tst-default-attr.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-dlsym1.c
tst-eintr1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-exec4.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-exec5.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-execstack-mod.c
tst-execstack.c
tst-initializers1-c11.c Add -std=gnu11 and -std=c11 NPTL initializers tests. 2015-10-27 21:48:34 +00:00
tst-initializers1-c89.c
tst-initializers1-c99.c
tst-initializers1-gnu11.c Add -std=gnu11 and -std=c11 NPTL initializers tests. 2015-10-27 21:48:34 +00:00
tst-initializers1-gnu89.c
tst-initializers1-gnu99.c
tst-initializers1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-minstack-cancel.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-minstack-exit.c Reduce <limits.h> pollution due to dynamic PTHREAD_STACK_MIN 2021-07-12 18:43:32 +02:00
tst-minstack-throw.cc Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-mutex5a.c
tst-mutex7a.c
tst-mutex8-static.c
tst-mutex8.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-mutexpi1.c Fix -Waddress warnings in nptl/tst-mutex1.c. 2014-12-02 22:33:57 +00:00
tst-mutexpi2.c
tst-mutexpi3.c
tst-mutexpi4.c
tst-mutexpi5.c
tst-mutexpi5a.c
tst-mutexpi6.c
tst-mutexpi7.c
tst-mutexpi7a.c
tst-mutexpi8-static.c
tst-mutexpi8.c
tst-mutexpi9.c
tst-mutexpi10.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-mutexpp1.c Fix -Waddress warnings in nptl/tst-mutex1.c. 2014-12-02 22:33:57 +00:00
tst-mutexpp5.c nptl: Fix PTHREAD_PRIO_PROTECT timed lock 2020-11-27 09:59:13 -03:00
tst-mutexpp6.c Get rid of warning comparision will always evaluate as true 2014-12-12 11:14:00 +01:00
tst-mutexpp9.c nptl: Fix PTHREAD_PRIO_PROTECT timed lock 2020-11-27 09:59:13 -03:00
tst-mutexpp10.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-oddstacklimit.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-once5.cc [PATCH] pthread_once hangs when init routine throws an exception [BZ #18435] 2021-03-04 15:15:33 +01:00
tst-pthread_exit-nothreads-static.c nptl: Move pthread_exit into libc 2021-04-21 19:49:50 +02:00
tst-pthread_exit-nothreads.c nptl: Move pthread_exit into libc 2021-04-21 19:49:50 +02:00
tst-pthread-attr-affinity-fail.c nptl: Add pthread_attr_setaffinity_np failure test 2021-05-27 13:12:16 -03:00
tst-pthread-attr-affinity.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-pthread-attr-sigmask.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-pthread-defaultattr-free.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-pthread-gdb-attach-static.c nptl_db: Support different libpthread/ld.so load orders (bug 27744) 2021-04-21 11:50:43 +02:00
tst-pthread-gdb-attach.c nptl: Fix tst-pthread-gdb-attach for ptrace_scope equal 1 2021-05-14 13:28:29 -03:00
tst-pthread-getattr.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-pthread-timedlock-lockloop.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-robust-fork.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-robustpi1.c
tst-robustpi2.c
tst-robustpi3.c
tst-robustpi4.c
tst-robustpi5.c
tst-robustpi6.c
tst-robustpi7.c
tst-robustpi8.c
tst-robustpi9.c
tst-rwlock2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock2a.c
tst-rwlock2b.c New pthread rwlock that is more scalable. 2017-01-10 11:50:17 +01:00
tst-rwlock3.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock6.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock7.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock8.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock9.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock10.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock11.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock15.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock17.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock18.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock19.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock20.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rwlock-pwn.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-sched1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-sem11-static.c
tst-sem11.c Fix semaphore destruction (bug 12674). 2015-01-21 00:46:16 -05:00
tst-sem12-static.c
tst-sem12.c
tst-sem13.c nptl: Add POSIX-proposed sem_clockwait 2019-07-12 13:36:23 +00:00
tst-sem17.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-setgetname.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-setgroups.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-setuid1-static.c
tst-setuid1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-setuid2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-signal3.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-signal7.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-stack2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-stack3.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-stack4.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-stack4mod.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-stackguard1-static.c
tst-stackguard1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-thread_local1.cc Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-thread-affinity-pthread2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-thread-affinity-pthread.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-thread-affinity-sched.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-thread-exit-clobber.cc Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-thread-setspecific.c Add __attribute_access_none to disable GCC warnings [BZ #27714] 2021-04-27 13:01:55 -06:00
tst-tls3-malloc.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-tls3.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-tls3mod.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-tls5.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-tls5.h Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
tst-tls5mod.c
tst-tls5moda.c
tst-tls5modb.c
tst-tls5modc.c
tst-tls5modd.c
tst-tls5mode.c
tst-tls5modf.c
tst-tls6.sh Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-tpp.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-tsd3.c Pass a valid pointer to pthread_setspecific to avoid GCC 11 warning. 2021-04-27 19:07:49 -06:00
tst-tsd4.c Pass a valid pointer to pthread_setspecific to avoid GCC 11 warning. 2021-04-27 19:07:49 -06:00
unwind.c nptl: Fix cleanups for stack grows up [BZ# 28899] 2022-03-06 16:00:52 +00:00
unwindbuf.sym
vars.c Force building with -fno-common 2021-07-09 20:09:14 +02:00
Versions nptl: Use out-of-line wake function in __libc_lock_unlock slow path 2021-07-09 10:59:22 +02:00