git: kernel - Clean up cache_hysteresis contention, better trigger_syncer()

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Oct 19 19:03:05 PDT 2023


commit 5479a2c19f7119cb8caa4203d874e9ceb2e13451
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Oct 19 18:49:07 2023 -0700

    kernel - Clean up cache_hysteresis contention, better trigger_syncer()
    
    * cache_hysteresis() is no longer multi-entrant, which causes
      unnecessary contention between cpus.  Only one cpu can run it
      at a time and it just returns for other cpus if it is already
      running.
    
    * Add better trigger_syncer functions.  Adding trigger_syncer_start()
      and trigger_syncer_stop() to elide filesystem sleeps, ensuring that
      a filesystem waiting on a flush due to excessive dirty pages does
      not race the flusher and wind up twiddling its fingers while
      no flush is happening.

Summary of changes:
 sys/kern/vfs_cache.c | 12 +++++++++++-
 sys/kern/vfs_sync.c  | 41 ++++++++++++++++++++++++++++++++++++-----
 sys/sys/vnode.h      |  2 ++
 3 files changed, 49 insertions(+), 6 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5479a2c19f7119cb8caa4203d874e9ceb2e13451


-- 
DragonFly BSD source repository


More information about the Commits mailing list