All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yury Norov <yury.norov@gmail.com>
To: Valentin Schneider <vschneid@redhat.com>
Cc: netdev@vger.kernel.org, linux-rdma@vger.kernel.org,
	linux-kernel@vger.kernel.org, Saeed Mahameed <saeedm@nvidia.com>,
	Leon Romanovsky <leon@kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Mel Gorman <mgorman@suse.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Heiko Carstens <hca@linux.ibm.com>,
	Tony Luck <tony.luck@intel.com>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Gal Pressman <gal@nvidia.com>, Tariq Toukan <tariqt@nvidia.com>,
	Jesse Brandeburg <jesse.brandeburg@intel.com>
Subject: Re: [PATCH v4 5/7] sched/topology: Introduce sched_numa_hop_mask()
Date: Sun, 25 Sep 2022 08:24:41 -0700	[thread overview]
Message-ID: <YzByuaa4ewpTNNOx@yury-laptop> (raw)
In-Reply-To: <YzBtH8s98eTmxaJo@yury-laptop>

On Sun, Sep 25, 2022 at 08:00:49AM -0700, Yury Norov wrote:
> On Fri, Sep 23, 2022 at 04:55:40PM +0100, Valentin Schneider wrote:
> > Tariq has pointed out that drivers allocating IRQ vectors would benefit
> > from having smarter NUMA-awareness - cpumask_local_spread() only knows
> > about the local node and everything outside is in the same bucket.
> > 
> > sched_domains_numa_masks is pretty much what we want to hand out (a cpumask
> > of CPUs reachable within a given distance budget), introduce
> > sched_numa_hop_mask() to export those cpumasks.
> > 
> > Link: http://lore.kernel.org/r/20220728191203.4055-1-tariqt@nvidia.com
> > Signed-off-by: Valentin Schneider <vschneid@redhat.com>
> > ---
> >  include/linux/topology.h | 12 ++++++++++++
> >  kernel/sched/topology.c  | 31 +++++++++++++++++++++++++++++++
> >  2 files changed, 43 insertions(+)
> > 
> > diff --git a/include/linux/topology.h b/include/linux/topology.h
> > index 4564faafd0e1..3e91ae6d0ad5 100644
> > --- a/include/linux/topology.h
> > +++ b/include/linux/topology.h
> > @@ -245,5 +245,17 @@ static inline const struct cpumask *cpu_cpu_mask(int cpu)
> >  	return cpumask_of_node(cpu_to_node(cpu));
> >  }
> >  
> > +#ifdef CONFIG_NUMA
> > +extern const struct cpumask *sched_numa_hop_mask(int node, int hops);
> > +#else
> > +static inline const struct cpumask *sched_numa_hop_mask(int node, int hops)
> > +{
> > +	if (node == NUMA_NO_NODE && !hops)
> > +		return cpu_online_mask;
> > +
> > +	return ERR_PTR(-EOPNOTSUPP);
> > +}
> > +#endif	/* CONFIG_NUMA */
> > +
> >  
> >  #endif /* _LINUX_TOPOLOGY_H */
> > diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
> > index 8739c2a5a54e..ee77706603c0 100644
> > --- a/kernel/sched/topology.c
> > +++ b/kernel/sched/topology.c
> > @@ -2067,6 +2067,37 @@ int sched_numa_find_closest(const struct cpumask *cpus, int cpu)
> >  	return found;
> >  }
> >  
> > +/**
> > + * sched_numa_hop_mask() - Get the cpumask of CPUs at most @hops hops away.
> > + * @node: The node to count hops from.
> > + * @hops: Include CPUs up to that many hops away. 0 means local node.
> > + *
> > + * Requires rcu_lock to be held. Returned cpumask is only valid within that
> > + * read-side section, copy it if required beyond that.
> > + *
> > + * Note that not all hops are equal in distance; see sched_init_numa() for how
> > + * distances and masks are handled.
> > + *
> > + * Also note that this is a reflection of sched_domains_numa_masks, which may change
> > + * during the lifetime of the system (offline nodes are taken out of the masks).
> > + */
> 
> Since it's exported, can you declare function parameters and return
> values properly?

s/declare/describe

  reply	other threads:[~2022-09-25 15:24 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-23 13:25 [PATCH v4 0/7] sched, net: NUMA-aware CPU spreading interface Valentin Schneider
2022-09-23 13:25 ` [PATCH v4 1/7] lib/find_bit: Introduce find_next_andnot_bit() Valentin Schneider
2022-09-23 15:44 ` [PATCH v4 0/7] sched, net: NUMA-aware CPU spreading interface Yury Norov
2022-09-23 15:49   ` Valentin Schneider
2022-09-23 15:55 ` [PATCH v4 2/7] cpumask: Introduce for_each_cpu_andnot() Valentin Schneider
2022-09-25 15:23   ` Yury Norov
2022-09-27 16:45     ` Valentin Schneider
2022-09-27 20:02       ` Yury Norov
2022-09-23 15:55 ` [PATCH v4 3/7] lib/test_cpumask: Add for_each_cpu_and(not) tests Valentin Schneider
2022-09-23 15:55 ` [PATCH v4 4/7] sched/core: Merge cpumask_andnot()+for_each_cpu() into for_each_cpu_andnot() Valentin Schneider
2022-09-23 15:55 ` [PATCH v4 5/7] sched/topology: Introduce sched_numa_hop_mask() Valentin Schneider
2022-09-25 15:00   ` Yury Norov
2022-09-25 15:24     ` Yury Norov [this message]
2022-09-27 16:45     ` Valentin Schneider
2022-09-27 19:30       ` Yury Norov
2022-09-25 18:05   ` Yury Norov
2022-09-25 18:13     ` Yury Norov
2022-09-27 16:45     ` Valentin Schneider
2022-09-23 15:55 ` [PATCH v4 6/7] sched/topology: Introduce for_each_numa_hop_cpu() Valentin Schneider
2022-09-25 14:58   ` Yury Norov
2022-09-27 16:45     ` Valentin Schneider
2022-09-23 15:55 ` [PATCH v4 7/7] net/mlx5e: Improve remote NUMA preferences used for the IRQ affinity hints Valentin Schneider
2022-09-25  7:48 ` [PATCH v4 0/7] sched, net: NUMA-aware CPU spreading interface Tariq Toukan
2022-10-18  6:36 ` Tariq Toukan
2022-10-18 16:50   ` Valentin Schneider

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=YzByuaa4ewpTNNOx@yury-laptop \
    --to=yury.norov@gmail.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=andriy.shevchenko@linux.intel.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=jesse.brandeburg@intel.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@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=saeedm@nvidia.com \
    --cc=tariqt@nvidia.com \
    --cc=tony.luck@intel.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.