git: kernel - VM rework part 20 - Fix vmmeter_neg_slop_cnt

Matthew Dillon dillon at crater.dragonflybsd.org
Wed May 22 00:23:30 PDT 2019


commit fd1fd056dfaa9247c30cb8928bebaf32d2de3477
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed May 22 00:16:17 2019 -0700

    kernel - VM rework part 20 - Fix vmmeter_neg_slop_cnt
    
    * Fix some serious issues with the vmmeter_neg_slop_cnt calculation.
      The main problem is that this calculation was then causing
      vmstats.v_free_min to be recalculated to a much higher value
      than it should beeen calculated to, resulting in systems starting
      to page far earlier than they should.
    
      For example, the 128G TR started paging tmpfs data with 25GB of
      free memory, which was not intended.  The correct target for that
      amount of memory is more around 3GB.
    
    * Remove vmmeter_neg_slop_cnt entirely and refactor the synchronization
      code to be smarter.  It will now synchronize vmstats fields whos
      adjustments exceed -1024, but only if paging would actually be
      needed in the worst-case scenario.
    
    * This algorithm needs low-memory testing and might require more
      tuning.

Summary of changes:
 sys/sys/vmmeter.h   |  2 --
 sys/vm/vm_meter.c   |  2 +-
 sys/vm/vm_page.c    | 65 +++++++++++++++++++++++++++++++----------------------
 sys/vm/vm_page.h    |  1 -
 sys/vm/vm_page2.h   |  6 ++---
 sys/vm/vm_pageout.c | 41 ++++++---------------------------
 6 files changed, 49 insertions(+), 68 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/fd1fd056dfaa9247c30cb8928bebaf32d2de3477


-- 
DragonFly BSD source repository


More information about the Commits mailing list