From: Andy Shevchenko <andriy.shevchenko@linux.intel.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>,
Yury Norov <yury.norov@gmail.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 v5 2/3] sched/topology: Introduce for_each_numa_hop_mask()
Date: Fri, 21 Oct 2022 16:16:17 +0300 [thread overview]
Message-ID: <Y1KboXN0f8dLjqit@smile.fi.intel.com> (raw)
In-Reply-To: <20221021121927.2893692-3-vschneid@redhat.com>
On Fri, Oct 21, 2022 at 01:19:26PM +0100, Valentin Schneider wrote:
> The recently introduced sched_numa_hop_mask() exposes cpumasks of CPUs
> reachable within a given distance budget, wrap the logic for iterating over
> all (distance, mask) values inside an iterator macro.
...
> #ifdef CONFIG_NUMA
> -extern const struct cpumask *sched_numa_hop_mask(int node, int hops);
> +extern const struct cpumask *sched_numa_hop_mask(unsigned int node, unsigned int hops);
> #else
> -static inline const struct cpumask *sched_numa_hop_mask(int node, int hops)
> +static inline const struct cpumask *
> +sched_numa_hop_mask(unsigned int node, unsigned int hops)
> {
> - if (node == NUMA_NO_NODE && !hops)
> - return cpu_online_mask;
> -
> return ERR_PTR(-EOPNOTSUPP);
> }
> #endif /* CONFIG_NUMA */
I didn't get how the above two changes are related to the 3rd one which
introduces a for_each type of macro.
If you need change int --> unsigned int, perhaps it can be done in a separate
patch.
The change inside inliner I dunno about. Not an expert.
...
> +#define for_each_numa_hop_mask(mask, node) \
> + for (unsigned int __hops = 0; \
> + /* \
> + * Unsightly trickery required as we can't both initialize \
> + * @mask and declare __hops in for()'s first clause \
> + */ \
> + mask = __hops > 0 ? mask : \
> + node == NUMA_NO_NODE ? \
> + cpu_online_mask : sched_numa_hop_mask(node, 0), \
> + !IS_ERR_OR_NULL(mask); \
> + __hops++, \
> + mask = sched_numa_hop_mask(node, __hops))
This can be unified with conditional, see for_each_gpio_desc_with_flag() as
example how.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2022-10-21 13:17 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-21 12:19 [PATCH v5 0/3] sched, net: NUMA-aware CPU spreading interface Valentin Schneider
2022-10-21 12:19 ` [PATCH v5 1/3] sched/topology: Introduce sched_numa_hop_mask() Valentin Schneider
2022-10-24 22:55 ` Yury Norov
2022-10-21 12:19 ` [PATCH v5 2/3] sched/topology: Introduce for_each_numa_hop_mask() Valentin Schneider
2022-10-21 13:16 ` Andy Shevchenko [this message]
2022-10-21 13:34 ` Andy Shevchenko
2022-10-21 14:06 ` Valentin Schneider
2022-10-21 13:57 ` Valentin Schneider
2022-10-21 12:19 ` [PATCH v5 3/3] net/mlx5e: Improve remote NUMA preferences used for the IRQ affinity hints Valentin Schneider
2022-10-24 11:24 ` Tariq Toukan
2022-10-24 23:17 ` 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=Y1KboXN0f8dLjqit@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=Jonathan.Cameron@huawei.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 \
--cc=yury.norov@gmail.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.