git: kernel - VM rework part 20 - Fix vmmeter_neg_slop_cnt

Matthew Dillon dillon at
Wed May 22 00:23:30 PDT 2019

commit fd1fd056dfaa9247c30cb8928bebaf32d2de3477
Author: Matthew Dillon <dillon at>
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

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(-)

DragonFly BSD source repository

More information about the Commits mailing list