aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorPaul Murphy <murphyp@linux.vnet.ibm.com>2015-09-03 13:40:21 -0500
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>2015-10-15 18:56:10 -0300
commitfadd2ad9cc36115440d50b0eae9299e65988917d (patch)
tree98e5446434a66f7bd64cb1a0f31aac778ea31413 /ChangeLog
parente5e6bea22a2939fe7c415a375992f3ca19f9ff2e (diff)
downloadglibc-fadd2ad9cc36115440d50b0eae9299e65988917d.tar
glibc-fadd2ad9cc36115440d50b0eae9299e65988917d.tar.gz
glibc-fadd2ad9cc36115440d50b0eae9299e65988917d.tar.bz2
glibc-fadd2ad9cc36115440d50b0eae9299e65988917d.zip
powerpc: Optimize lock elision for pthread_mutex_t
With TLE enabled, the adapt count variable update incurs an 8% overhead before entering the critical section of an elided mutex. Instead, if it is done right after leaving the critical section, this serialization can be avoided. This alters the existing behavior of __lll_trylock_elision as it will only decrement the adapt_count if it successfully acquires the lock. * sysdeps/unix/sysv/linux/powerpc/elision-lock.c (__lll_lock_elision): Remove adapt_count decrement... * sysdeps/unix/sysv/linux/powerpc/elision-trylock.c (__lll_trylock_elision): Likewise. * sysdeps/unix/sysv/linux/powerpc/elision-unlock.c (__lll_unlock_elision): ... to here. And utilize new adapt_count parameter. * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_unlock_elision): Update to include adapt_count parameter. (lll_unlock_elision): Pass pointer to adapt_count variable.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog15
1 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6a743e454b..917c4649d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
2015-10-15 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
+ * sysdeps/unix/sysv/linux/powerpc/elision-lock.c
+ (__lll_lock_elision): Remove adapt_count decrement...
+ * sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
+ (__lll_trylock_elision): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
+ (__lll_unlock_elision): ... to here. And utilize
+ new adapt_count parameter.
+ * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
+ (__lll_unlock_elision): Update to include adapt_count
+ parameter.
+ (lll_unlock_elision): Pass pointer to adapt_count
+ variable.
+
+2015-10-15 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
+
* nptl/pthread_mutex_unlock.c (lll_unlock_elision):
Add elision adapt_count parameter to list of arguments.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h