freebsd-skq/lib
Kris Kennaway 2017a7cdfe Add a new "non-portable" mutex type, PTHREAD_MUTEX_ADAPTIVE_NP. This
is also implemented in glibc and is used by a number of existing
applications (mysql, firefox, etc).

This mutex type is a default mutex with the additional property that
it spins briefly when attempting to acquire a contested lock, doing
trylock operations in userland before entering the kernel to block if
eventually unsuccessful.

The expectation is that applications requesting this mutex type know
that the mutex is likely to be only held for very brief periods, so it
is faster to spin in userland and probably succeed in acquiring the
mutex, than to enter the kernel and sleep, only to be woken up almost
immediately.  This can help significantly in certain cases when
pthread mutexes are heavily contended and held for brief durations
(such as mysql).

Spin up to 200 times before entering the kernel, which represents only
a few us on modern CPUs.  No performance degradation was observed with
this value and it is sufficient to avoid a large performance drop in
mysql performance in the heavily contended pthread mutex case.

The libkse implementation is a NOP.

Reviewed by:      jeff
MFC after:        3 days
2007-10-29 21:01:47 +00:00
..
bind Remove the special atomic.h case for arm, and allow it to use 2007-06-05 22:17:16 +00:00
csu Fix TLS on sparc64 for statically and dynamically linked binaries 2006-10-08 02:50:34 +00:00
libalias - Bump share library version which were missed in last bump 2007-06-18 18:47:54 +00:00
libarchive When skipping input data, don't overflow a 32-bit size_t. 2007-10-27 22:45:40 +00:00
libatm Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libautofs Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libbegemot Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libbluetooth Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libbsm Install getaudit_addr(2) and setaudit_addr(2) links to getaudit(2) and 2007-10-19 10:37:34 +00:00
libbsnmp - Bump share library version which were missed in last bump 2007-06-18 18:47:54 +00:00
libbz2 Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libc Back out 2nd part of wrong iswascii() change in prev. commit. 2007-10-23 17:39:28 +00:00
libc_r Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libcalendar
libcam 2nd and final commit that moves us to CAM_NEW_TRAN_CODE 2006-11-02 00:54:38 +00:00
libcom_err
libcompat Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
libcrypt Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libdevinfo Markup fixes. 2006-09-17 21:27:35 +00:00
libdevstat Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libdisk Translate partitions of type "PART" to chunks of the same type 2007-09-21 16:24:01 +00:00
libedit Merge NetBSD changes, among them: 2007-06-10 19:06:09 +00:00
libelf Consistently use the word 'flag' to refer to ELF_F_* constants. 2007-10-22 03:38:43 +00:00
libexpat Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libfetch Enable FTP_COMBINE_CWDS. 2007-05-24 20:28:14 +00:00
libftpio Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libgeom Remove parameter names from prototypes to avoid namespace issues. 2007-05-06 10:00:27 +00:00
libgpib Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libgssapi If the mech_type argument to gss_display_status is null, use a default 2007-07-05 13:40:07 +00:00
libipsec Commit IPv6 support for FAST_IPSEC to the tree. 2007-07-01 12:08:08 +00:00
libipx Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
libkiconv Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libkse Add a new "non-portable" mutex type, PTHREAD_MUTEX_ADAPTIVE_NP. This 2007-10-29 21:01:47 +00:00
libkvm Aparrently MACXOCOMLEN exisrts only on my machine 2007-10-26 15:25:28 +00:00
libmagic FreeBSD has <limits.h>. 2007-05-24 22:10:22 +00:00
libmd Use unsigned comparisons. Prior to this commit, SHA1_Update and 2007-05-14 05:00:37 +00:00
libmemstat Make pointer argument to kread_string() const since the kernel structure 2007-05-21 18:16:04 +00:00
libmilter New files in sendmail 8.14.1 2007-04-09 01:45:30 +00:00
libmp Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libncp Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libnetgraph Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libngatm Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libopie Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libpam Correct documentation of ~/.opiealways 2007-10-26 07:50:11 +00:00
libpcap Update for libpcap 0.9.8 import 2007-10-16 02:10:44 +00:00
libpmc Fix a bug in the description of the "p6-div" event. [1] 2007-04-12 09:16:54 +00:00
libradius Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
librpcsvc Reimplementation of world/kernel build options. For details, see: 2006-03-17 18:54:44 +00:00
librt Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it. 2007-05-13 14:12:40 +00:00
libsbuf
libsdp Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libsm New files in sendmail 8.14.1 2007-04-09 01:45:30 +00:00
libsmb Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libsmdb
libsmutil
libstand First cut at support for booting a GPT labeled disk via the BIOS bootstrap 2007-10-24 21:33:00 +00:00
libtacplus Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libtelnet Stop enforcing dependencies between MK_* options at Makefile level. 2006-07-31 13:29:36 +00:00
libthr Add a new "non-portable" mutex type, PTHREAD_MUTEX_ADAPTIVE_NP. This 2007-10-29 21:01:47 +00:00
libthread_db Include string.h for memcpy() and memcmp(). 2007-05-25 13:43:14 +00:00
libufs The ufs_disk_fillout(3) can take special device name (with or without /dev/ 2007-03-16 03:13:28 +00:00
libugidfw Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libusbhid Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libutil Minor mdoc cleanup: Every sentence should start on its own line. 2007-10-13 11:09:45 +00:00
libvgl Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libwrap Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
liby Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
libypclnt Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libz Resolve conflicts. 2006-03-23 14:09:21 +00:00
msun Oops, back out previous commit since it was backwards to a wrong branch. 2007-06-14 05:57:13 +00:00
ncurses - Convert NO_INSTALLLIB option to a new syntax: makefiles should 2007-10-20 19:01:50 +00:00
Makefile Add a period for yar@. 2007-10-26 11:07:25 +00:00
Makefile.inc Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00