From: Reinette Chatre <reinette.chatre@intel.com>
To: Yury Norov <yury.norov@gmail.com>,
Tony Luck <tony.luck@intel.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "Borislav Petkov" <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>, <x86@kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/4] cpumask: relax cpumask_any_but()
Date: Wed, 23 Apr 2025 14:28:03 -0700 [thread overview]
Message-ID: <2aa4169d-a26a-429b-9deb-dcf19baa763e@intel.com> (raw)
In-Reply-To: <20250407153856.133093-2-yury.norov@gmail.com>
Hi Yury,
On 4/7/25 8:38 AM, Yury Norov wrote:
> From: Yury Norov [NVIDIA] <yury.norov@gmail.com>
>
> Similarly to other cpumask search functions, accept -1, and consider
> it as 'any cpu' hint. This helps users to avoid coding special cases.
>
> Signed-off-by: Yury Norov [NVIDIA] <yury.norov@gmail.com>
> ---
> include/linux/cpumask.h | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
> index beff4d26e605..0f816092c891 100644
> --- a/include/linux/cpumask.h
> +++ b/include/linux/cpumask.h
> @@ -413,6 +413,7 @@ unsigned int cpumask_next_wrap(int n, const struct cpumask *src)
> * @cpu: the cpu to ignore.
> *
> * Often used to find any cpu but smp_processor_id() in a mask.
> + * If @cpu == -1, the function is equivalent to cpumask_any().
Now that -1 is a legal argument, should the "cpu" parameter be of "int" type (instead of
"unsigned int")?
> * Return: >= nr_cpu_ids if no cpus set.
> */
> static __always_inline
> @@ -420,7 +421,10 @@ unsigned int cpumask_any_but(const struct cpumask *mask, unsigned int cpu)
> {
> unsigned int i;
>
> - cpumask_check(cpu);
> + /* -1 is a legal arg here. */
> + if (cpu != -1)
> + cpumask_check(cpu);
> +
> for_each_cpu(i, mask)
> if (i != cpu)
> break;
> @@ -433,6 +437,7 @@ unsigned int cpumask_any_but(const struct cpumask *mask, unsigned int cpu)
> * @mask2: the second input cpumask
> * @cpu: the cpu to ignore
> *
> + * If @cpu == -1, the function is equivalent to cpumask_any_and().
> * Returns >= nr_cpu_ids if no cpus set.
> */
> static __always_inline
> @@ -442,7 +447,10 @@ unsigned int cpumask_any_and_but(const struct cpumask *mask1,
Same question here regarding type of "cpu" parameter.
> {
> unsigned int i;
>
> - cpumask_check(cpu);
> + /* -1 is a legal arg here. */
> + if (cpu != -1)
> + cpumask_check(cpu);
> +
> i = cpumask_first_and(mask1, mask2);
> if (i != cpu)
> return i;
Reinette
next prev parent reply other threads:[~2025-04-23 21:28 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-07 15:38 [PATCH 0/4] cpumask: add missing API and simplify cpumask_any_housekeeping() Yury Norov
2025-04-07 15:38 ` [PATCH 1/4] cpumask: relax cpumask_any_but() Yury Norov
2025-04-23 21:28 ` Reinette Chatre [this message]
2025-04-24 2:46 ` Yury Norov
2025-04-07 15:38 ` [PATCH 2/4] find: add find_first_andnot_bit() Yury Norov
2025-04-23 21:28 ` Reinette Chatre
2025-04-24 2:57 ` Yury Norov
2025-04-07 15:38 ` [PATCH 3/4] cpumask: add cpumask_{first,next}_andnot() API Yury Norov
2025-04-23 21:28 ` Reinette Chatre
2025-04-24 2:58 ` Yury Norov
2025-04-24 17:07 ` James Morse
2025-04-07 15:38 ` [PATCH 4/4] x86/resctrl: optimize cpumask_any_housekeeping() Yury Norov
2025-04-23 21:29 ` Reinette Chatre
2025-04-24 3:01 ` Yury Norov
2025-04-22 13:50 ` [PATCH 0/4] cpumask: add missing API and simplify cpumask_any_housekeeping() Yury Norov
2025-04-22 15:13 ` Reinette Chatre
2025-04-23 21:27 ` Reinette Chatre
2025-04-24 3:11 ` Yury Norov
2025-04-24 17:22 ` James Morse
2025-04-24 17:12 ` James Morse
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=2aa4169d-a26a-429b-9deb-dcf19baa763e@intel.com \
--to=reinette.chatre@intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--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.