Message ID | 20220717052301.19067-2-tariqt@nvidia.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | mlx5: Use NUMA distance metrics | expand |
On Sun, Jul 17, 2022 at 08:23:00AM +0300, Tariq Toukan wrote: > This logic can help device drivers prefer some remote cpus > over others, according to the NUMA distance metrics. > > Reviewed-by: Gal Pressman <gal@nvidia.com> > Signed-off-by: Tariq Toukan <tariqt@nvidia.com> > --- > include/linux/sched/topology.h | 2 ++ > kernel/sched/topology.c | 1 + > 2 files changed, 3 insertions(+) > > diff --git a/include/linux/sched/topology.h b/include/linux/sched/topology.h > index 56cffe42abbc..d467c30bdbb9 100644 > --- a/include/linux/sched/topology.h > +++ b/include/linux/sched/topology.h > @@ -61,6 +61,8 @@ static inline int cpu_numa_flags(void) > { > return SD_NUMA; > } > + > +int sched_numa_find_closest(const struct cpumask *cpus, int cpu); > #endif > > extern int arch_asym_cpu_priority(int cpu); > diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c > index 05b6c2ad90b9..688334ac4980 100644 > --- a/kernel/sched/topology.c > +++ b/kernel/sched/topology.c > @@ -2066,6 +2066,7 @@ int sched_numa_find_closest(const struct cpumask *cpus, int cpu) > > return found; > } > +EXPORT_SYMBOL(sched_numa_find_closest); EXPORT_SYMBOL_GPL() if anything. Also, this thing will be subject to sched_domains, that means that if someone uses cpusets or other means to partition the machine, that effects the result. Is that what you want?
On 7/18/2022 1:19 PM, Peter Zijlstra wrote: > On Sun, Jul 17, 2022 at 08:23:00AM +0300, Tariq Toukan wrote: >> This logic can help device drivers prefer some remote cpus >> over others, according to the NUMA distance metrics. >> >> Reviewed-by: Gal Pressman <gal@nvidia.com> >> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> >> --- >> include/linux/sched/topology.h | 2 ++ >> kernel/sched/topology.c | 1 + >> 2 files changed, 3 insertions(+) >> >> diff --git a/include/linux/sched/topology.h b/include/linux/sched/topology.h >> index 56cffe42abbc..d467c30bdbb9 100644 >> --- a/include/linux/sched/topology.h >> +++ b/include/linux/sched/topology.h >> @@ -61,6 +61,8 @@ static inline int cpu_numa_flags(void) >> { >> return SD_NUMA; >> } >> + >> +int sched_numa_find_closest(const struct cpumask *cpus, int cpu); >> #endif >> >> extern int arch_asym_cpu_priority(int cpu); >> diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c >> index 05b6c2ad90b9..688334ac4980 100644 >> --- a/kernel/sched/topology.c >> +++ b/kernel/sched/topology.c >> @@ -2066,6 +2066,7 @@ int sched_numa_find_closest(const struct cpumask *cpus, int cpu) >> >> return found; >> } >> +EXPORT_SYMBOL(sched_numa_find_closest); > > EXPORT_SYMBOL_GPL() if anything. I'll fix. > > Also, this thing will be subject to sched_domains, that means that if > someone uses cpusets or other means to partition the machine, that > effects the result. > > Is that what you want? Yes, it's good enough, at least as a first phase and basic functionality. Later we might introduce whatever enhancements we find necessary. Thanks, Tariq
diff --git a/include/linux/sched/topology.h b/include/linux/sched/topology.h index 56cffe42abbc..d467c30bdbb9 100644 --- a/include/linux/sched/topology.h +++ b/include/linux/sched/topology.h @@ -61,6 +61,8 @@ static inline int cpu_numa_flags(void) { return SD_NUMA; } + +int sched_numa_find_closest(const struct cpumask *cpus, int cpu); #endif extern int arch_asym_cpu_priority(int cpu); diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index 05b6c2ad90b9..688334ac4980 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -2066,6 +2066,7 @@ int sched_numa_find_closest(const struct cpumask *cpus, int cpu) return found; } +EXPORT_SYMBOL(sched_numa_find_closest); #endif /* CONFIG_NUMA */