Stefan Liebler
dd037fb3df
S390: Optimize lock-elision by decrementing adapt_count at unlock.
...
This patch decrements the adapt_count while unlocking the futex
instead of before aquiring the futex as it is done on power, too.
Furthermore a transaction is only started if the futex is currently free.
This check is done after starting the transaction, too.
If the futex is not free and the transaction nesting depth is one,
we can simply end the started transaction instead of aborting it.
The implementation of this check was faulty as it always ended the
started transaction. By using the fallback path, the the outermost
transaction was aborted. Now the outermost transaction is aborted
directly.
This patch also adds some commentary and aligns the code in
elision-trylock.c to the code in elision-lock.c as possible.
ChangeLog:
* sysdeps/unix/sysv/linux/s390/lowlevellock.h
(__lll_unlock_elision, lll_unlock_elision): Add adapt_count argument.
* sysdeps/unix/sysv/linux/s390/elision-lock.c:
(__lll_lock_elision): Decrement adapt_count while unlocking
instead of before locking.
* sysdeps/unix/sysv/linux/s390/elision-trylock.c
(__lll_trylock_elision): Likewise.
* sysdeps/unix/sysv/linux/s390/elision-unlock.c:
(__lll_unlock_elision): Likewise.
2016-12-20 15:12:48 +01:00
..
2016-12-20 00:46:53 +00:00
2016-12-20 00:46:53 +00:00
2016-12-20 00:46:53 +00:00
2016-12-14 18:23:15 +00:00
2016-12-14 15:31:24 -02:00
2016-12-20 00:46:53 +00:00
2016-12-20 00:46:53 +00:00
2016-12-20 00:46:53 +00:00
2016-09-23 08:43:56 -04:00
2016-12-20 00:46:53 +00:00
2016-12-20 00:46:53 +00:00
2016-12-20 00:46:53 +00:00
2016-09-23 08:43:56 -04:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-09-23 08:43:56 -04:00
2016-09-23 08:43:56 -04:00
2016-04-27 09:08:29 +02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-09-23 08:43:55 -04:00
2016-12-20 00:46:53 +00:00
2016-12-20 00:46:53 +00:00
2016-12-20 15:12:48 +01:00
2016-01-04 16:05:18 +00:00
2016-12-20 00:46:53 +00:00
2016-12-20 00:46:53 +00:00
2016-09-23 08:43:56 -04:00
2016-12-20 00:46:53 +00:00
2016-11-17 15:54:22 -02:00
2016-12-07 09:35:07 +01:00
2016-12-20 00:46:53 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-16 15:53:58 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-05-25 17:39:01 -03:00
2016-05-25 17:39:01 -03:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-02-24 18:44:10 +00:00
2016-02-24 18:44:10 +00:00
2016-01-04 16:05:18 +00:00
2016-11-24 19:38:51 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-03-23 23:35:08 +01:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-10-07 14:16:36 -03:00
2016-10-07 14:16:36 -03:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-28 08:51:01 -08:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-09 17:46:11 -02:00
2016-11-09 17:46:11 -02:00
2016-01-04 16:05:18 +00:00
2016-03-23 23:35:08 +01:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-07 13:26:27 -08:00
2016-11-21 08:23:12 -08:00
2016-01-04 16:05:18 +00:00
2016-11-21 08:23:12 -08:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-03-22 00:32:20 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-12-12 17:28:04 +01:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-12-12 17:28:04 +01:00
2016-11-17 15:54:22 -02:00
2016-11-17 15:54:22 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-05-25 17:39:01 -03:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-22 09:59:12 -08:00
2016-01-04 16:05:18 +00:00
2016-06-13 08:36:34 -03:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:26:30 +00:00
2016-04-11 10:27:25 +02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-08 16:04:33 -02:00
2016-11-08 16:04:33 -02:00
2016-03-23 23:35:08 +01:00
2016-11-07 13:26:27 -08:00
2016-11-21 08:23:12 -08:00
2016-11-08 16:04:33 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-07-13 17:08:51 +01:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-10-07 14:16:41 -03:00
2016-10-07 14:16:41 -03:00
2016-10-07 14:16:41 -03:00
2016-10-07 14:16:41 -03:00
2016-01-04 16:05:18 +00:00
2016-03-15 21:11:07 +00:00
2016-10-24 15:26:42 -02:00
2016-10-24 15:26:42 -02:00
2016-07-08 14:28:08 -03:00
2016-07-08 14:28:08 -03:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-07-13 17:08:51 +01:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-24 19:38:51 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-24 19:38:51 -02:00
2016-11-24 19:38:51 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-10-24 15:26:42 -02:00
2016-10-24 15:26:42 -02:00
2016-07-08 14:28:08 -03:00
2016-07-08 14:28:08 -03:00
2016-11-24 19:38:51 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-06-10 11:58:16 -03:00
2016-06-10 11:58:16 -03:00
2016-12-14 15:31:24 -02:00
2016-12-14 15:31:24 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-06-10 11:58:16 -03:00
2016-06-10 11:58:16 -03:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-17 15:54:22 -02:00
2016-11-17 15:54:22 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-03-21 16:30:05 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-09-28 14:07:35 -07:00
2016-01-04 16:05:18 +00:00
2016-11-28 08:51:01 -08:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-10-11 16:21:12 -03:00
2016-12-14 15:31:24 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-10-24 15:26:42 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-06-19 15:47:00 -04:00
2016-01-04 16:05:18 +00:00
2016-11-09 17:46:17 -02:00
2016-11-09 17:46:17 -02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-24 19:38:51 -02:00
2016-01-04 16:05:18 +00:00
2016-10-07 14:16:36 -03:00
2016-12-09 08:18:27 +01:00
2016-10-07 14:16:36 -03:00
2016-02-24 18:44:10 +00:00
2015-02-06 12:30:23 -08:00
2016-01-04 16:05:18 +00:00
2016-09-01 15:53:13 +02:00
2016-10-24 09:43:54 -07:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-12-09 08:18:27 +01:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-03-23 23:35:08 +01:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2015-11-09 12:48:41 +01:00
2016-04-14 08:54:57 +02:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-01-04 16:05:18 +00:00
2016-11-07 13:26:27 -08:00
2016-11-21 08:23:12 -08:00
2016-11-21 08:23:12 -08:00
2016-01-04 16:05:18 +00:00