git: dsynth - Add Numa_setsize option (defaults to disabled)
dillon at crater.dragonflybsd.org
Sun Feb 26 23:17:08 PST 2023
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sun Feb 26 23:06:20 2023 -0800
dsynth - Add Numa_setsize option (defaults to disabled)
* Currently only for testing purposes and not recommended for general
use. Default is 0 (disabled).
* If enabled, a value of 2 or 4 are the only really viable choices,
otherwise the cpu mask will be so fragmented that even highly
parallel bulks are going to wind up with cpu threads left idle.
The NUMA partitioning is hacked at the moment but will generally
work with both AMD and Intel.
This works by round-robining N cpumask domains across available builder
slots. Insofar as DragonFlyBSD goes, this will localize per-process /
per-thread anonymous page allocations and kernel memory resources.
* However, DragonFlyBSD still spreads buffer cache pages (the file
cache) across all domains, including for tmpfs, The reason is that
such pages tend to be very long-lived and fully localizing them can
exhaust the VM page queues for related cpus and domains, forcing
contention inside vm_page_alloc() as multiple cpu threads contend
for fewer VM page queue slots.
Summary of changes:
usr.bin/dsynth/Makefile | 2 +-
usr.bin/dsynth/build.c | 9 +++++++--
usr.bin/dsynth/config.c | 3 +++
usr.bin/dsynth/dsynth.1 | 9 +++++++++
usr.bin/dsynth/dsynth.c | 1 +
usr.bin/dsynth/dsynth.h | 6 +++++-
usr.bin/dsynth/mount.c | 8 +++++++-
7 files changed, 33 insertions(+), 5 deletions(-)
DragonFly BSD source repository
More information about the Commits