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