From: James Morse <james.morse@arm.com>
To: Yury Norov <yury.norov@gmail.com>,
Tony Luck <tony.luck@intel.com>,
Reinette Chatre <reinette.chatre@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 3/4] cpumask: add cpumask_{first,next}_andnot() API
Date: Thu, 24 Apr 2025 18:07:37 +0100 [thread overview]
Message-ID: <2d6bf83a-85ad-404a-b34f-c8777e373aaa@arm.com> (raw)
In-Reply-To: <20250407153856.133093-4-yury.norov@gmail.com>
Hi Yury,
On 07/04/2025 16:38, Yury Norov wrote:
> From: Yury Norov [NVIDIA] <yury.norov@gmail.com>
>
> With the lack of the functions, client code has to abuse less efficient
> cpumask_nth().
> diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
> index 0f816092c891..9067c3411cd0 100644
> --- a/include/linux/cpumask.h
> +++ b/include/linux/cpumask.h
> @@ -458,6 +490,33 @@ unsigned int cpumask_any_and_but(const struct cpumask *mask1,
> return cpumask_next_and(cpu, mask1, mask2);
> }
>
> +/**
> + * cpumask_andnot_any_but - pick an arbitrary cpu from *mask1 & ~*mask2, but not this one.
> + * @mask1: the first input cpumask
> + * @mask2: the second input cpumask
> + * @cpu: the cpu to ignore
> + *
> + * If @cpu == -1, the function returns the first matching cpu.
> + * Returns >= nr_cpu_ids if no cpus set.
> + */
> +static __always_inline
> +unsigned int cpumask_andnot_any_but(const struct cpumask *mask1,
> + const struct cpumask *mask2,
> + unsigned int cpu)
Nit: Shouldn't this be named cpumask_any_andnot_but()?
It's any cpu from the first-mask, then 'andnot' the second. This fits with the other
instances of this, e.g. cpumask_any_and_but().
> +{
> + unsigned int i;
> +
> + /* -1 is a legal arg here. */
> + if (cpu != -1)
> + cpumask_check(cpu);
> +
> + i = cpumask_first_andnot(mask1, mask2);
> + if (i != cpu)
> + return i;
> +
> + return cpumask_next_andnot(cpu, mask1, mask2);
> +}
Thanks,
James
next prev parent reply other threads:[~2025-04-24 17:07 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
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 [this message]
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=2d6bf83a-85ad-404a-b34f-c8777e373aaa@arm.com \
--to=james.morse@arm.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=reinette.chatre@intel.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.