Andi Kleen
8491ed6d70
Add adaptive elision to rwlocks
...
This patch relies on the C version of the rwlocks posted earlier.
With C rwlocks it is very straight forward to do adaptive elision
using TSX. It is based on the infrastructure added earlier
for mutexes, but uses its own elision macros. The macros
are fairly general purpose and could be used for other
elision purposes too.
This version is much cleaner than the earlier assembler based
version, and in particular implements adaptation which makes
it safer.
I changed the behavior slightly to not require any changes
in the test suite and fully conform to all expected
behaviors (generally at the cost of not eliding in
various situations). In particular this means the timedlock
variants are not elided. Nested trylock aborts.
2014-06-13 13:15:28 -07:00
..
2014-06-13 13:15:28 -07:00
2014-06-13 13:15:28 -07:00
2014-06-09 12:53:16 -07:00
2014-03-18 14:48:09 -07:00
2014-05-14 11:06:36 -07:00
2014-06-13 13:15:28 -07:00
2014-06-09 12:52:55 -07:00
2014-06-13 13:15:28 -07:00
2014-06-13 13:15:28 -07:00
2014-06-13 13:15:28 -07:00
2014-06-13 13:15:28 -07:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-12 23:41:01 +00:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-06-13 13:15:28 -07:00
2014-03-24 16:59:01 +01:00
2014-01-01 22:00:23 +10:00
2014-06-12 09:05:54 -07:00
2014-06-12 15:04:34 -07:00
2014-01-06 08:07:33 -05:00
2014-06-11 15:52:53 -04:00
2014-02-10 15:07:12 +01:00
2014-06-13 13:15:28 -07:00
2014-05-16 11:17:41 -07:00
2014-01-01 22:00:23 +10:00
2013-06-05 20:44:03 +00:00
2014-02-20 17:50:31 +00:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-05-16 11:47:13 -07:00
2014-01-01 22:00:23 +10:00
2014-03-25 15:17:08 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-05-08 11:27:14 -07:00
2014-05-08 11:27:14 -07:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-02-06 08:46:20 +10:00
2014-02-06 08:46:20 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-05-13 09:49:20 -07:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-05-29 09:41:29 +05:30
2014-05-29 09:41:29 +05:30
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-06-13 14:02:04 +05:30
2013-07-21 15:39:55 -04:00
2014-01-01 22:00:23 +10:00
2014-06-05 19:25:23 +02:00
2014-01-01 22:00:23 +10:00
2014-06-12 13:48:47 -07:00
2014-02-20 17:50:31 +00:00
2014-02-20 17:53:08 +00:00
2014-02-20 17:55:35 +00:00
2014-05-29 09:41:29 +05:30
2014-01-01 22:00:23 +10:00
2013-11-26 12:32:28 +01:00
2014-01-01 22:00:23 +10:00
2014-05-14 00:45:19 +00:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-02-08 06:39:10 -05:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-05-13 09:49:20 -07:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-05-16 15:45:58 -07:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2013-05-03 16:33:26 -07:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2012-11-04 10:10:58 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-06-12 13:48:47 -07:00
2014-01-01 22:00:23 +10:00
2014-05-16 00:07:29 +02:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-20 17:53:08 +00:00
2014-02-10 15:07:12 +01:00
2013-08-27 10:34:16 -07:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-20 17:55:35 +00:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-06-12 10:32:18 -07:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-05-29 09:41:29 +05:30
2014-05-29 09:41:29 +05:30
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-05-12 22:48:25 +00:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-04 08:34:01 -05:00
2014-02-10 15:07:12 +01:00
2014-02-10 15:07:12 +01:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2013-12-22 14:49:48 +00:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-02-10 15:07:12 +01:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00
2014-01-01 22:00:23 +10:00