Messages in this thread | | | From | Chen Yu <> | Date | Wed, 19 Feb 2020 15:15:16 +0800 | Subject | [RFC] Display the cpu of sched domain in procfs |
| |
Problem: sched domain topology is not always consistent with the CPU topology exposed at /sys/devices/system/cpu/cpuX/topology, which makes it hard for monitor tools to distinguish the CPUs among different sched domains.
For example, on x86 if there are NUMA nodes within a package, say, SNC(Sub-Numa-Cluster), then there would be no die sched domain but only NUMA sched domains created. As a result, you don't know what the sched domain hierarchical is by only looking at /sys/devices/system/cpu/cpuX/topology.
Although by appending sched_debug in command line would show the sched domain CPU topology, it is only printed once during boot up, which makes it hard to track at run-time.
Proposal: Add *span* filed under proc sched_domain directory to represent the set of CPUs in each sched domain.
Question: *Before sending the patch out, may I have you opinions on whether this is doable?*
Here are the sample output on a SNC system after the patch been applied: grep . /proc/sys/kernel/sched_domain/cpu0/domain*/span /proc/sys/kernel/sched_domain/cpu0/domain0/span:0,96 (SMT domain) /proc/sys/kernel/sched_domain/cpu0/domain1/span:0-3,7-9,13-15,19-20, (MC domain)
96-99,103-105,109-111,
115-116 /proc/sys/kernel/sched_domain/cpu0/domain2/span:0-23,96-119 (NUMA domain) /proc/sys/kernel/sched_domain/cpu0/domain3/span:0-191 (NUMA domain)
FYI, the corresponding CPU topology is: grep . /sys/devices/system/cpu/cpu0/topology/*cpus_list /sys/devices/system/cpu/cpu0/topology/core_cpus_list:0,96 /sys/devices/system/cpu/cpu0/topology/die_cpus_list:0-23,96-119 /sys/devices/system/cpu/cpu0/topology/package_cpus_list:0-47,96-143
thanks, Chenyu
| |