powerpc: More elision improvements
authorPaul Murphy <murphyp@linux.vnet.ibm.com>
Wed, 28 Oct 2015 22:34:31 +0000 (17:34 -0500)
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Thu, 19 Nov 2015 18:15:42 +0000 (16:15 -0200)
commit86b4939846caf2bb072bba6057e1dc3ad187c2c2
tree0f22e932dca29d8ecaec7e4cab9befa08053c0d2
parent79adcb58f6ca687c61939bbe695ffc8c54558d5f
powerpc: More elision improvements

__lll_trylock_elision sets the adapt_count variable too
aggressively, and incorrectly on persistent aborts.  Taking
a cue from s390, adapt_count is only updated if the lock
is locked, or a persistent failure occurs.

In addition, the abort codes have been renumbered and
refactored for clarity.  As it stands, glibc only cares
if the abort is persistent or not.

All aborts are now persistent, excepting a busy lock.  This
includes changing _ABORT_NESTED_TRYLOCK into a persistent
abort.

* sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
(__lll_trylock_elision): Fix setting of adapt_count.
* sysdeps/unix/sysv/linux/powerpc/htm.h
(_ABORT_PERSISTENT): Define to clarify persistent aborts.
(_ABORT_NESTED_TRYLOCK): Renumber, and make persistent.
(_ABORT_SYSCALL): Renumber, and clarify definition.
(_ABORT_LOCK_BUSY): Renumber, make non-persistent.
ChangeLog
sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
sysdeps/unix/sysv/linux/powerpc/htm.h