summaryrefslogtreecommitdiff
path: root/sys/dev/dm/dm_pdev.c
diff options
context:
space:
mode:
authorad <ad@NetBSD.org>2019-12-01 13:56:29 +0000
committerad <ad@NetBSD.org>2019-12-01 13:56:29 +0000
commit1e190518b79868bb9f5884904c84659c60be5eec (patch)
treee218fb1d2056547500a48768b1667c8acbc5e37d /sys/dev/dm/dm_pdev.c
parent275cfc8eadf420f8831b84a34788e87f3e0c353f (diff)
Minor vnode locking changes:
- Stop using atomics to maniupulate v_usecount. It was a mistake to begin with. It doesn't work as intended unless the XLOCK bit is incorporated in v_usecount and we don't have that any more. When I introduced this 10+ years ago it was to reduce pressure on v_interlock but it doesn't do that, it just makes stuff disappear from lockstat output and introduces problems elsewhere. We could do atomic usecounts on vnodes but there has to be a well thought out scheme. - Resurrect LK_UPGRADE/LK_DOWNGRADE which will be needed to work effectively when there is increased use of shared locks on vnodes. - Allocate the vnode lock using rw_obj_alloc() to reduce false sharing of struct vnode. - Put all of the LRU lists into a single cache line, and do not requeue a vnode if it's already on the correct list and was requeued recently (less than a second ago). Kernel build before and after: 119.63s real 1453.16s user 2742.57s system 115.29s real 1401.52s user 2690.94s system
Diffstat (limited to 'sys/dev/dm/dm_pdev.c')
0 files changed, 0 insertions, 0 deletions