about summary refs log tree commit diff
path: root/nptl/Makefile
diff options
context:
space:
mode:
authorKemi Wang <kemi.wang@intel.com>2018-12-01 07:03:33 -0800
committerH.J. Lu <hjl.tools@gmail.com>2018-12-01 08:19:20 -0800
commit6310e6be9b7c322d56a45729b3ebcd22e26dd0c2 (patch)
tree577b9815c0ab096a7d120ddf8ae7ca44ea166c1b /nptl/Makefile
parent8e67b39eb4a3abb6f3e35de3ad6e5d06ed0e8498 (diff)
downloadglibc-6310e6be9b7c322d56a45729b3ebcd22e26dd0c2.tar.gz
glibc-6310e6be9b7c322d56a45729b3ebcd22e26dd0c2.tar.xz
glibc-6310e6be9b7c322d56a45729b3ebcd22e26dd0c2.zip
Mutex: Add pthread mutex tunables
This patch does not have any functionality change, we only provide a spin
count tunes for pthread adaptive spin mutex. The tunable
glibc.pthread.mutex_spin_count tunes can be used by system administrator to
squeeze system performance according to different hardware capabilities and
workload characteristics.

The maximum value of spin count is limited to 32767 to avoid the overflow
of mutex->__data.__spins variable with the possible type of short in
pthread_mutex_lock ().

The default value of spin count is set to 100 with the reference to the
previous number of times of spinning via trylock. This value would be
architecture-specific and can be tuned with kinds of benchmarks to fit most
cases in future.

I would extend my appreciation sincerely to H.J.Lu for his help to refine
this patch series.

	* manual/tunables.texi (POSIX Thread Tunables): New node.
	* nptl/Makefile (libpthread-routines): Add pthread_mutex_conf.
	* nptl/nptl-init.c: Include pthread_mutex_conf.h
	(__pthread_initialize_minimal_internal) [HAVE_TUNABLES]: Call
	 __pthread_tunables_init.
	* nptl/pthreadP.h (MAX_ADAPTIVE_COUNT): Remove.
	(max_adaptive_count): Define.
	* nptl/pthread_mutex_conf.c: New file.
	* nptl/pthread_mutex_conf.h: New file.
	* sysdeps/generic/adaptive_spin_count.h: New file.
	* sysdeps/nptl/dl-tunables.list: New file.
	* nptl/pthread_mutex_lock.c (__pthread_mutex_lock): Use
	max_adaptive_count () not MAX_ADAPTIVE_COUNT.
	* nptl/pthread_mutex_timedlock.c (__pthrad_mutex_timedlock):
	Likewise.

Suggested-by: Andi Kleen <andi.kleen@intel.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Signed-off-by: Kemi.wang <kemi.wang@intel.com>
Diffstat (limited to 'nptl/Makefile')
-rw-r--r--nptl/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index 98b0aa01c7..34ae830276 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -145,7 +145,7 @@ libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
 		      mtx_destroy mtx_init mtx_lock mtx_timedlock \
 		      mtx_trylock mtx_unlock call_once cnd_broadcast \
 		      cnd_destroy cnd_init cnd_signal cnd_timedwait cnd_wait \
-		      tss_create tss_delete tss_get tss_set
+		      tss_create tss_delete tss_get tss_set pthread_mutex_conf
 #		      pthread_setuid pthread_seteuid pthread_setreuid \
 #		      pthread_setresuid \
 #		      pthread_setgid pthread_setegid pthread_setregid \