Commit Graph

3 Commits

Author SHA1 Message Date
Paul Murphy
fadd2ad9cc 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.
2015-10-15 18:56:10 -03:00
Adhemerval Zanella
49a9f6ab64 powerpc: Fix Copyright dates and CL entry
This patch fixes the copyright dates from files created by commit
8d2c0a5, 4b45943, and 56cf276.
2015-01-12 12:58:34 -05:00
Adhemerval Zanella
8d2c0a593b powerpc: Add the lock elision using HTM
This patch adds support for lock elision using ISA 2.07 hardware
transactional memory instructions for pthread_mutex primitives.
Similar to s390 version, the for elision logic defined in
'force-elision.h' is only enabled if ENABLE_LOCK_ELISION is defined.

Also, the lock elision code should be able to be built even with
a compiler that does not provide HTM support with builtins.
However I have noted the performance is sub-optimal due scheduling
pressures.
2015-01-12 06:30:19 -05:00