libthr: Add src.conf variable WITHOUT_PTHREADS_ASSERTIONS
This patch fixes a bug which prevents building libthr without _PTHREADS_INVARIANTS defined. The default remains to build libthr with -D_PTHREADS_INVARIANTS. However, with this patch, if one builds libthr with WITHOUT_PTHREADS_ASSERTIONS=true then the latency to acquire+release a default pthread mutex is reduced by roughly 5%, and a robust mutex by roughly 18% (as measured by a simple synthetic test on a Xeon E5-2697a based machine). Reviewed by: jhb, kib, mjg MFC after: 1 week Differential revision: https://reviews.freebsd.org/D40900
This commit is contained in:
parent
80bd5ef070
commit
642cd51102
@ -51,8 +51,10 @@ SYMBOL_MAPS=${.CURDIR}/pthread.map
|
||||
|
||||
MAN= libthr.3
|
||||
|
||||
.if ${MK_PTHREADS_ASSERTIONS} != "no"
|
||||
# enable extra internal consistency checks
|
||||
CFLAGS+=-D_PTHREADS_INVARIANTS
|
||||
.endif
|
||||
|
||||
PRECIOUSLIB=
|
||||
|
||||
|
@ -120,7 +120,7 @@ __weak_reference(_pthread_mutex_getyieldloops_np, pthread_mutex_getyieldloops_np
|
||||
__weak_reference(_pthread_mutex_isowned_np, pthread_mutex_isowned_np);
|
||||
|
||||
static void
|
||||
mutex_init_link(struct pthread_mutex *m)
|
||||
mutex_init_link(struct pthread_mutex *m __unused)
|
||||
{
|
||||
|
||||
#if defined(_PTHREADS_INVARIANTS)
|
||||
|
@ -159,6 +159,7 @@ __DEFAULT_YES_OPTIONS = \
|
||||
PKGBOOTSTRAP \
|
||||
PMC \
|
||||
PPP \
|
||||
PTHREADS_ASSERTIONS \
|
||||
QUOTAS \
|
||||
RADIUS_SUPPORT \
|
||||
RBOOTD \
|
||||
|
1
tools/build/options/WITHOUT_PTHREADS_ASSERTIONS
Normal file
1
tools/build/options/WITHOUT_PTHREADS_ASSERTIONS
Normal file
@ -0,0 +1 @@
|
||||
Disable debugging assertions in pthreads library.
|
Loading…
Reference in New Issue
Block a user