git: dsynth - Add Numa_setsize option (defaults to disabled)

Matthew Dillon dillon at
Sun Feb 26 23:17:08 PST 2023

commit 3bd7e0a721596bd1a6ad5c4bacdcdb346de94b5c
Author: Matthew Dillon <dillon at>
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 mailing list