We lost this with the lockmgr rework. The logic here is to wake shared waiters unless there are exclusive waiters. Patch from Attilio. From EMC/Isilon.
Details
Details
- Reviewers
- None
Tested heavily on our version (which relies on shared locks more heavily, too).
Diff Detail
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
Comment Actions
While testing this patch I noticed one NFS test, that triggered ~20.000 "waking up threads on the shared queue".
The details:
root@t2:~pho/stress2/misc #
KDB: enter: Break to debugger
[ thread pid 11 tid 100006 ]
Stopped at kdb_alt_break_internal+0x197: movq $0,kdb_why
db> x/d pho
pho: 0
db> c
root@t2:~pho/stress2/misc # /usr/bin/time -h ./crossmp2.sh
nfs server x4:/tmp: not responding
6m17.59s real 25.48s user 2m33.26s sys
root@t2:~pho/stress2/misc # KDB: enter: Break to debugger
[ thread pid 11 tid 100006 ]
Stopped at kdb_alt_break_internal+0x197: movq $0,kdb_why
db> x/d pho
pho: 20506
db> c
LOCK_LOG2(lk, "%s: %p waking up threads on the shared queue", __func__, lk); pho++;
Tested on r285787M. No other "issues" observed.