git: kernel - Refactor struct vmstats and vm_zone
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Jan 8 16:13:02 PST 2017
commit 55a7854b22e75d4af6e282598f2d84781d731c40
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sun Jan 8 16:02:59 2017 -0800
kernel - Refactor struct vmstats and vm_zone
* These changes significantly improve the simultaneous non-conflicting
VM fault rate. On our 4-socket opteron (48 cores, which makes a great
test case because its cache mastership stalls are so expensive), the
maximum concurrent VM fault rate increased from ~2.4M/sec to ~3.5M/sec,
and suffers no degredation after topping out.
* Refactor the fields in struct vmstats to separate out mostly
read-only variables from nominally modified variables, reducing
cache mastership stalls.
* Remove vm_shared_hit, vm_shared_count, and vm_shared_miss sysctl
statistics, removing related cache mastership stalls from the
critical path.
* Move the spinlock in vpgqueues to the base of the structure.
* Increase the vmstats slop (how large a negative value can accumulate
in pcpu stats before rolling it up).
* Fix cache mastership stalls in the zalloc() and zfree() paths by
consolidating pcpus elements into its own cache-aligned structure
and giving each pcpu its on znalloc counter.
Summary of changes:
sys/sys/vmmeter.h | 24 ++++++++++------
sys/vm/vm_fault.c | 13 ---------
sys/vm/vm_meter.c | 2 +-
sys/vm/vm_page.h | 2 +-
sys/vm/vm_pageout.c | 7 +++++
sys/vm/vm_zone.c | 80 +++++++++++++++++++++++++++++------------------------
sys/vm/vm_zone.h | 16 ++++++++---
7 files changed, 81 insertions(+), 63 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/55a7854b22e75d4af6e282598f2d84781d731c40
--
DragonFly BSD source repository
More information about the Commits
mailing list