1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-02-04 17:15:50 +00:00
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-20 23:44:24 +00:00
2007-11-15 14:16:20 +00:00
2008-01-02 18:48:27 +00:00
2007-12-17 08:09:37 +00:00
2007-12-14 21:30:51 +00:00
2008-01-02 17:09:15 +00:00
2008-01-20 23:44:24 +00:00
2008-02-04 12:25:13 +00:00
2008-02-04 12:25:13 +00:00