Age | Commit message (Collapse) | Author |
|
ok krw marco pedro
|
|
Pointed out by thib@
|
|
test_and_set name for some other operation, while cas is generally
used for compare and set (cmpxchg in intel land, cas in sparc land).
- Make rw locks properly MP safe (provided that rw_cas is implemented
in MD code). Most operations were MP safe except the sleep where we
could have set the "I'm sleeping" flag before actually going to sleep
so that the wakeup could miss us. Now, using the split tsleep,
we first setup the sleep (put us on the sleep queues), then set
the flag aborting the sleep if the lock has changed and then finally
go to sleep.
miod@ ok (and he's been prodding me for days to get this in)
|
|
without letting any other exclusive locks in between. As opposed to upgrading
locks, this is easy and solves real problems.
deraadt@ ok
|
|
ok brad
|
|
rework the main entry points to just use rw_test_and_set.
rework exit paths to be more like enter paths.
add sleepfail so more lockmgr can be replaced.
some from art, ok sturm
|
|
without breaking into ddb. doubles the size of rwlock [1], but moving
forward this really helps. ok/tested pedro fgsch millert krw
[1 - next person to add a field to this struct gets whipped with a wet noodle]
|
|
|
|
|
|
mostly cleanup and simplification, though now also supporting
upgrade and downgrade via the magic wand.
|
|
is horrible and doesn't add anything.
Remove it.
XXX - the fdplock macro will need a separate cleanup.
niklas@ markus@ ok
|
|
|
|
later. have been looked over for quite some time now.
|