git: kernel - Yield during VM teardown, fix zfree() contention
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Jul 10 00:51:25 PDT 2016
commit e674353b80e9b15b0374d5154579755e53754184
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sun Jul 10 00:46:25 2016 -0700
kernel - Yield during VM teardown, fix zfree() contention
* Yield during the teardown of vm_page's related to process exit
to allow other processes to get some cpu. Also use lwkt_user_yield()
instead of lwkt_yield().
* zfree() had no hysteresis once the pcpu cache was full, causing massive
contention on the pool spin lock. Generally only effects page-frees
(returning the pv_entry to the pool).
Implement hysteresis on free by moving up to 32 elements out of the pcpu
cache and back into the pool when the pool becomes full.
Summary of changes:
sys/platform/pc64/x86_64/pmap.c | 8 +++++--
sys/vm/vm_object.c | 27 +++++++++++++++------
sys/vm/vm_page.h | 2 ++
sys/vm/vm_zone.c | 53 +++++++++++++++++++++++++++++------------
4 files changed, 66 insertions(+), 24 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e674353b80e9b15b0374d5154579755e53754184
--
DragonFly BSD source repository
More information about the Commits
mailing list