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