Messages in this thread | | | From | Vincent Guittot <> | Date | Wed, 10 Apr 2024 09:26:08 +0200 | Subject | Re: [PATCH 1/2 RESEND] cpumask: Add for_each_cpu_from() |
| |
On Tue, 9 Apr 2024 at 17:54, Kyle Meyer <kyle.meyer@hpe.com> wrote: > > Add for_each_cpu_from() as a generic cpumask macro. > > for_each_cpu_from() is the same as for_each_cpu(), except it starts at > @cpu instead of zero. > > Signed-off-by: Kyle Meyer <kyle.meyer@hpe.com> > Acked-by: Yury Norov <yury.norov@gmail.com> > --- > include/linux/cpumask.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h > index 1c29947db848..655211db38ff 100644 > --- a/include/linux/cpumask.h > +++ b/include/linux/cpumask.h > @@ -368,6 +368,16 @@ unsigned int __pure cpumask_next_wrap(int n, const struct cpumask *mask, int sta > #define for_each_cpu_or(cpu, mask1, mask2) \ > for_each_or_bit(cpu, cpumask_bits(mask1), cpumask_bits(mask2), small_cpumask_bits) > > +/** > + * for_each_cpu_from - iterate over every cpu present in @mask, starting at @cpu
So I was confused why you were not using for_each_cpu_wrap while reading the description which has the same comment : " * for_each_cpu_wrap - iterate over every cpu in a mask, starting at a specified location " Could you clarify that it's not "every cpu present in @mask" but only those after @cpu ?
> + * @cpu: the (optionally unsigned) integer iterator > + * @mask: the cpumask pointer > + * > + * After the loop, cpu is >= nr_cpu_ids. > + */ > +#define for_each_cpu_from(cpu, mask) \ > + for_each_set_bit_from(cpu, cpumask_bits(mask), small_cpumask_bits) > + > /** > * cpumask_any_but - return a "random" in a cpumask, but not this one. > * @mask: the cpumask to search > -- > 2.44.0 >
| |