From: Yury Norov <yury.norov@gmail.com>
To: Jakub Kicinski <kuba@kernel.org>,
netdev@vger.kernel.org, linux-rdma@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: Yury Norov <yury.norov@gmail.com>,
Saeed Mahameed <saeedm@nvidia.com>,
Pawel Chmielewski <pawel.chmielewski@intel.com>,
Leon Romanovsky <leon@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Paolo Abeni <pabeni@redhat.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
Valentin Schneider <vschneid@redhat.com>,
Tariq Toukan <tariqt@nvidia.com>, Gal Pressman <gal@nvidia.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Heiko Carstens <hca@linux.ibm.com>,
Barry Song <baohua@kernel.org>
Subject: [PATCH 6/8] sched/topology: export sched_domains_numa_levels
Date: Sat, 25 Mar 2023 11:55:12 -0700 [thread overview]
Message-ID: <20230325185514.425745-7-yury.norov@gmail.com> (raw)
In-Reply-To: <20230325185514.425745-1-yury.norov@gmail.com>
The following patch adds a test for NUMA-aware CPU enumerators, and it
requires an access to sched_domains_numa_levels.
Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
include/linux/topology.h | 7 +++++++
kernel/sched/topology.c | 10 ++++++----
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/include/linux/topology.h b/include/linux/topology.h
index 62a9dd8edd77..3d8d486c817d 100644
--- a/include/linux/topology.h
+++ b/include/linux/topology.h
@@ -43,6 +43,13 @@
for_each_online_node(node) \
if (nr_cpus_node(node))
+#ifdef CONFIG_NUMA
+extern int __sched_domains_numa_levels;
+#define sched_domains_numa_levels ((const int)__sched_domains_numa_levels)
+#else
+#define sched_domains_numa_levels (1)
+#endif
+
int arch_update_cpu_topology(void);
/* Conform to ACPI 2.0 SLIT distance definitions */
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index 1860d9487fe1..5f5f994a56da 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -1508,7 +1508,9 @@ static void claim_allocations(int cpu, struct sched_domain *sd)
#ifdef CONFIG_NUMA
enum numa_topology_type sched_numa_topology_type;
-static int sched_domains_numa_levels;
+int __sched_domains_numa_levels;
+EXPORT_SYMBOL_GPL(__sched_domains_numa_levels);
+
static int sched_domains_curr_level;
int sched_max_numa_distance;
@@ -1872,7 +1874,7 @@ void sched_init_numa(int offline_node)
*
* We reset it to 'nr_levels' at the end of this function.
*/
- sched_domains_numa_levels = 0;
+ __sched_domains_numa_levels = 0;
masks = kzalloc(sizeof(void *) * nr_levels, GFP_KERNEL);
if (!masks)
@@ -1948,7 +1950,7 @@ void sched_init_numa(int offline_node)
sched_domain_topology_saved = sched_domain_topology;
sched_domain_topology = tl;
- sched_domains_numa_levels = nr_levels;
+ __sched_domains_numa_levels = nr_levels;
WRITE_ONCE(sched_max_numa_distance, sched_domains_numa_distance[nr_levels - 1]);
init_numa_topology_type(offline_node);
@@ -1961,7 +1963,7 @@ static void sched_reset_numa(void)
struct cpumask ***masks;
nr_levels = sched_domains_numa_levels;
- sched_domains_numa_levels = 0;
+ __sched_domains_numa_levels = 0;
sched_max_numa_distance = 0;
sched_numa_topology_type = NUMA_DIRECT;
distances = sched_domains_numa_distance;
--
2.34.1
next prev parent reply other threads:[~2023-03-25 18:56 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-25 18:55 [PATCH 0/8] sched/topology: add for_each_numa_cpu() macro Yury Norov
2023-03-25 18:55 ` [PATCH 1/8] lib/find: add find_next_and_andnot_bit() Yury Norov
2023-03-27 10:26 ` Andy Shevchenko
2023-03-25 18:55 ` [PATCH 2/8] sched/topology: introduce sched_numa_find_next_cpu() Yury Norov
2023-03-27 10:28 ` Andy Shevchenko
2023-04-10 18:00 ` Yury Norov
2023-03-25 18:55 ` [PATCH 3/8] sched/topology: add for_each_numa_cpu() macro Yury Norov
2023-04-10 18:05 ` Yury Norov
2023-03-25 18:55 ` [PATCH 4/8] net: mlx5: switch comp_irqs_request() to using for_each_numa_cpu Yury Norov
2023-03-25 18:55 ` [PATCH 5/8] lib/cpumask: update comment to cpumask_local_spread() Yury Norov
2023-03-25 18:55 ` Yury Norov [this message]
2023-03-25 18:55 ` [PATCH 7/8] lib: add test for for_each_numa_{cpu,hop_mask}() Yury Norov
2023-03-25 18:55 ` [RFC PATCH 8/8] sched: drop for_each_numa_hop_mask() Yury Norov
2023-04-10 18:09 ` [PATCH 0/8] sched/topology: add for_each_numa_cpu() macro Yury Norov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230325185514.425745-7-yury.norov@gmail.com \
--to=yury.norov@gmail.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=baohua@kernel.org \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=davem@davemloft.net \
--cc=dietmar.eggemann@arm.com \
--cc=edumazet@google.com \
--cc=gal@nvidia.com \
--cc=gregkh@linuxfoundation.org \
--cc=hca@linux.ibm.com \
--cc=juri.lelli@redhat.com \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pawel.chmielewski@intel.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=saeedm@nvidia.com \
--cc=tariqt@nvidia.com \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.