[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADjb_WQ0wFgZWBo0Xo1Q+NWS6vF0BSs5H0ho+5FM82Mu-JVYoQ@mail.gmail.com>
Date: Wed, 19 Feb 2020 15:15:16 +0800
From: Chen Yu <yu.chen.surf@...il.com>
To: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Cc: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Juri Lelli <juri.lelli@...hat.com>,
Vincent Guittot <vincent.guittot@...aro.org>,
Mel Gorman <mgorman@...e.de>, Tony Luck <tony.luck@...el.com>,
Aubrey Li <aubrey.li@...ux.intel.com>,
Tim Chen <tim.c.chen@...ux.intel.com>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Borislav Petkov <bp@...e.de>
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
Powered by blists - more mailing lists