git: kernel - Use different cache_rover for emergency pager
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Oct 21 23:24:01 PDT 2017
commit cf2880a210f08c9d519d06c9161d7fd9af4a4085
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Oct 21 23:17:26 2017 -0700
kernel - Use different cache_rover for emergency pager
* Fix an issue where the same cache_rover index was being used for both
pageout threads. This could result in a great deal of contention
and cache line bouncing between the threads due to the vm pagerq
spinlock.
* Fix by changing cache_rover to an array[2]. In addition, the
one pageout thread iterates its rover forwards while the other
runs its rover backwards, plus a little more code, to minimize
conflicts.
Summary of changes:
sys/vm/vm_pageout.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/cf2880a210f08c9d519d06c9161d7fd9af4a4085
--
DragonFly BSD source repository
More information about the Commits
mailing list