]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
vm_pageout: Scale worker threads with CPUs
authorConrad Meyer <cem@FreeBSD.org>
Tue, 25 Aug 2020 21:36:56 +0000 (21:36 +0000)
committerConrad Meyer <cem@FreeBSD.org>
Tue, 25 Aug 2020 21:36:56 +0000 (21:36 +0000)
commit74f5530d7a78d3be0055535e95bca4d520a01328
treec7a19c30d9d30b936bc1c9827872ac74a0b60051
parent60403b98b907a7f80016de24e1770e323c3dcdbb
vm_pageout: Scale worker threads with CPUs

Autoscale vm_pageout worker threads from r364129 with CPU count.  The
default is arbitrarily chosen to be 16 CPUs per worker thread, but can
be adjusted with the vm.pageout_cpus_per_thread tunable.

There will never be less than 1 thread per populated NUMA domain, and
the previous arbitrary upper limit (at most ncpus/2 threads per NUMA
domain) is preserved.

Care is taken to gracefully handle asymmetric NUMA nodes, such as empty
node systems (e.g., AMD 2990WX) and systems with nodes of varying size
(e.g., some larger >20 core Intel Haswell/Broadwell Xeon).

Reviewed by: kib, markj
Sponsored by: Isilon
Differential Revision: https://reviews.freebsd.org/D26152
sys/vm/vm_pageout.c