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