Jeff Roberson
5dff04c31f
Adaptive spinning in write path with readers and writer starvation avoidance.
...
- Move recursion checking into rwlock inlines to free a bit for use with
adaptive spinners.
- Clear the RW_LOCK_WRITE_SPINNERS flag whenever the lock state changes
causing write spinners to restart their loop.
- Write spinners are limited by a count while readers hold the lock as
there is no way to know for certain whether readers are running still.
- In the read path block if there are write waiters or spinners to avoid
starving writers. Use a new per-thread count, td_rw_rlocks, to skip
starvation avoidance if it might cause a deadlock.
- Remove or change invalid assertions in turnstiles.
Reviewed by: attilio (developed parts of the patch as well)
Sponsored by: Nokia
2008-02-06 01:02:13 +00:00
..
2008-01-18 17:02:14 +00:00
2008-01-13 14:44:15 +00:00
2008-01-13 14:44:15 +00:00
2008-01-13 14:44:15 +00:00
2008-01-10 22:11:20 +00:00
2008-01-20 23:44:24 +00:00
2008-01-13 14:44:15 +00:00
2008-01-13 14:44:15 +00:00
2007-12-25 17:52:02 +00:00
2007-06-04 23:50:56 +00:00
2007-12-05 01:22:03 +00:00
2008-01-16 01:05:21 +00:00
2008-01-20 19:55:52 +00:00
2007-10-24 19:04:04 +00:00
2008-01-07 20:05:19 +00:00
2008-01-13 14:44:15 +00:00
2008-01-13 14:44:15 +00:00
2007-11-15 02:13:44 +00:00
2007-10-27 00:52:26 +00:00
2007-10-29 20:45:31 +00:00
2008-01-24 08:25:59 +00:00
2007-11-15 14:16:20 +00:00
2007-11-15 21:45:17 +00:00
2008-01-13 14:44:15 +00:00
2008-01-13 14:44:15 +00:00
2008-02-06 00:37:14 +00:00
2007-08-07 09:04:50 +00:00
2007-06-27 13:39:38 +00:00
2008-02-01 19:36:27 +00:00
2008-01-17 22:46:32 +00:00
2007-12-06 23:11:27 +00:00
2007-12-15 23:13:31 +00:00
2007-06-14 18:37:58 +00:00
2007-12-07 08:20:17 +00:00
2007-08-06 14:26:03 +00:00
2007-07-02 14:03:29 +00:00
2008-01-10 22:11:20 +00:00
2007-10-24 19:04:04 +00:00
2008-01-10 22:11:20 +00:00
2007-11-18 14:43:53 +00:00
2008-02-06 01:02:13 +00:00
2008-01-28 19:04:07 +00:00
2008-01-13 14:44:15 +00:00
2007-06-05 00:00:57 +00:00
2007-11-14 06:21:24 +00:00
2007-12-15 23:13:31 +00:00
2008-01-10 22:11:20 +00:00
2007-11-30 21:29:08 +00:00
2008-01-02 18:48:27 +00:00
2007-11-15 06:35:26 +00:00
2007-12-22 04:56:48 +00:00
2008-01-18 13:00:28 +00:00
2008-02-06 00:04:09 +00:00
2007-12-17 08:09:37 +00:00
2007-06-05 00:00:57 +00:00
2008-01-13 14:44:15 +00:00
2008-01-13 14:44:15 +00:00
2007-11-18 00:23:31 +00:00
2007-07-05 08:55:14 +00:00
2007-12-14 21:30:51 +00:00
2007-07-04 22:38:28 +00:00
2007-11-14 06:21:24 +00:00
2007-12-15 23:13:31 +00:00
2008-01-23 03:10:18 +00:00
2007-06-12 00:12:01 +00:00
2008-01-27 16:06:37 +00:00
2007-07-23 09:42:32 +00:00
2007-12-25 17:52:02 +00:00
2008-02-06 00:04:09 +00:00
2007-10-16 10:40:53 +00:00
2007-11-14 06:21:24 +00:00
2007-06-05 00:00:57 +00:00
2008-01-25 19:44:46 +00:00
2008-01-02 17:09:15 +00:00
2007-12-03 14:44:35 +00:00
2007-10-20 23:23:23 +00:00
2007-12-07 08:20:17 +00:00
2008-02-06 01:02:13 +00:00
2007-07-04 06:56:58 +00:00
2007-12-25 17:52:02 +00:00
2008-01-07 20:05:19 +00:00
2008-01-07 20:05:19 +00:00
2007-11-08 19:35:36 +00:00
2008-01-07 20:05:19 +00:00
2008-01-20 23:44:24 +00:00
2008-01-20 23:43:06 +00:00
2008-01-08 22:01:26 +00:00
2007-06-12 00:12:01 +00:00
2007-10-24 19:04:04 +00:00
2007-10-24 19:04:04 +00:00
2007-10-24 19:04:04 +00:00
2008-01-13 14:44:15 +00:00
2007-07-05 05:54:47 +00:00
2008-01-26 06:09:23 +00:00
2007-07-03 17:46:37 +00:00
2008-01-08 04:53:28 +00:00
2008-02-01 19:36:27 +00:00
2008-01-03 15:19:31 +00:00
2007-08-06 14:26:03 +00:00
2007-10-24 19:04:04 +00:00
2008-02-01 19:36:27 +00:00
2008-01-13 14:44:15 +00:00
2008-01-07 22:03:19 +00:00
2008-01-16 15:51:24 +00:00
2008-02-04 12:25:13 +00:00
2008-02-04 12:25:13 +00:00
2008-02-03 15:54:41 +00:00
2008-01-18 19:16:03 +00:00
2008-01-13 14:44:15 +00:00
2008-02-01 11:59:14 +00:00
2008-01-19 17:36:23 +00:00
2008-01-13 14:44:15 +00:00
2008-01-24 12:34:30 +00:00
2008-01-13 14:44:15 +00:00
2008-01-13 14:44:15 +00:00
2008-01-24 12:34:30 +00:00
2008-01-24 12:34:30 +00:00
2008-01-13 14:44:15 +00:00
2008-01-13 14:44:15 +00:00
2008-01-13 14:44:15 +00:00