Commit 9032dc21 authored by Barry Song's avatar Barry Song Committed by Peter Zijlstra

Documentation: scheduler: fix information on arch SD flags, sched_domain and sched_debug

This document seems to be out of date for many, many years. Even it has
misspelled from the first day.
ARCH_HASH_SCHED_TUNE should be ARCH_HAS_SCHED_TUNE
ARCH_HASH_SCHED_DOMAIN should be ARCH_HAS_SCHED_DOMAIN

Since v2.6.14, kernel completely deleted the relevant code and even
arch_init_sched_domains() was deleted.

Right now, kernel is asking architectures to call set_sched_topology() to
override the default sched domains.

On the other hand, to print the schedule debug information, users need to
set sched_debug cmdline or enable it by sysfs entry. So this patch also
adds the description for sched_debug.
Signed-off-by: default avatarBarry Song <song.bao.hua@hisilicon.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: default avatarValentin Schneider <valentin.schneider@arm.com>
Link: https://lkml.kernel.org/r/20201113115018.1628-1-song.bao.hua@hisilicon.com
parent b5b21734
...@@ -65,21 +65,17 @@ of the SMP domain will span the entire machine, with each group having the ...@@ -65,21 +65,17 @@ of the SMP domain will span the entire machine, with each group having the
cpumask of a node. Or, you could do multi-level NUMA or Opteron, for example, cpumask of a node. Or, you could do multi-level NUMA or Opteron, for example,
might have just one domain covering its one NUMA level. might have just one domain covering its one NUMA level.
The implementor should read comments in include/linux/sched.h: The implementor should read comments in include/linux/sched/sd_flags.h:
struct sched_domain fields, SD_FLAG_*, SD_*_INIT to get an idea of SD_* to get an idea of the specifics and what to tune for the SD flags
the specifics and what to tune. of a sched_domain.
Architectures may retain the regular override the default SD_*_INIT flags Architectures may override the generic domain builder and the default SD flags
while using the generic domain builder in kernel/sched/core.c if they wish to for a given topology level by creating a sched_domain_topology_level array and
retain the traditional SMT->SMP->NUMA topology (or some subset of that). This calling set_sched_topology() with this array as the parameter.
can be done by #define'ing ARCH_HASH_SCHED_TUNE.
Alternatively, the architecture may completely override the generic domain
builder by #define'ing ARCH_HASH_SCHED_DOMAIN, and exporting your
arch_init_sched_domains function. This function will attach domains to all
CPUs using cpu_attach_domain.
The sched-domains debugging infrastructure can be enabled by enabling The sched-domains debugging infrastructure can be enabled by enabling
CONFIG_SCHED_DEBUG. This enables an error checking parse of the sched domains CONFIG_SCHED_DEBUG and adding 'sched_debug' to your cmdline. If you forgot to
which should catch most possible errors (described above). It also prints out tweak your cmdline, you can also flip the /sys/kernel/debug/sched_debug
the domain structure in a visual format. knob. This enables an error checking parse of the sched domains which should
catch most possible errors (described above). It also prints out the domain
structure in a visual format.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment