mirror of
https://github.com/torvalds/linux.git
synced 2025-04-09 14:45:27 +00:00

Since it's enabled unconditionally now, remove all references to it. (Left out languages I cannot read.) Signed-off-by: Ingo Molnar <mingo@kernel.org> Tested-by: Shrikanth Hegde <sshegde@linux.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Juri Lelli <juri.lelli@redhat.com> Cc: Vincent Guittot <vincent.guittot@linaro.org> Cc: Dietmar Eggemann <dietmar.eggemann@arm.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Ben Segall <bsegall@google.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Valentin Schneider <vschneid@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20250317104257.3496611-5-mingo@kernel.org
55 lines
2.3 KiB
ReStructuredText
55 lines
2.3 KiB
ReStructuredText
=================
|
|
Scheduler debugfs
|
|
=================
|
|
|
|
Booting a kernel with debugfs enabled will give access to
|
|
scheduler specific debug files under /sys/kernel/debug/sched. Some of
|
|
those files are described below.
|
|
|
|
numa_balancing
|
|
==============
|
|
|
|
`numa_balancing` directory is used to hold files to control NUMA
|
|
balancing feature. If the system overhead from the feature is too
|
|
high then the rate the kernel samples for NUMA hinting faults may be
|
|
controlled by the `scan_period_min_ms, scan_delay_ms,
|
|
scan_period_max_ms, scan_size_mb` files.
|
|
|
|
|
|
scan_period_min_ms, scan_delay_ms, scan_period_max_ms, scan_size_mb
|
|
-------------------------------------------------------------------
|
|
|
|
Automatic NUMA balancing scans tasks address space and unmaps pages to
|
|
detect if pages are properly placed or if the data should be migrated to a
|
|
memory node local to where the task is running. Every "scan delay" the task
|
|
scans the next "scan size" number of pages in its address space. When the
|
|
end of the address space is reached the scanner restarts from the beginning.
|
|
|
|
In combination, the "scan delay" and "scan size" determine the scan rate.
|
|
When "scan delay" decreases, the scan rate increases. The scan delay and
|
|
hence the scan rate of every task is adaptive and depends on historical
|
|
behaviour. If pages are properly placed then the scan delay increases,
|
|
otherwise the scan delay decreases. The "scan size" is not adaptive but
|
|
the higher the "scan size", the higher the scan rate.
|
|
|
|
Higher scan rates incur higher system overhead as page faults must be
|
|
trapped and potentially data must be migrated. However, the higher the scan
|
|
rate, the more quickly a tasks memory is migrated to a local node if the
|
|
workload pattern changes and minimises performance impact due to remote
|
|
memory accesses. These files control the thresholds for scan delays and
|
|
the number of pages scanned.
|
|
|
|
``scan_period_min_ms`` is the minimum time in milliseconds to scan a
|
|
tasks virtual memory. It effectively controls the maximum scanning
|
|
rate for each task.
|
|
|
|
``scan_delay_ms`` is the starting "scan delay" used for a task when it
|
|
initially forks.
|
|
|
|
``scan_period_max_ms`` is the maximum time in milliseconds to scan a
|
|
tasks virtual memory. It effectively controls the minimum scanning
|
|
rate for each task.
|
|
|
|
``scan_size_mb`` is how many megabytes worth of pages are scanned for
|
|
a given scan.
|