Re: [tip: irq/core] genirq/affinity: Replace cpumask_weight() with cpumask_empty() where appropriate

From: Yury Norov
Date: Sun Apr 10 2022 - 17:17:47 EST


On Sun, Apr 10, 2022 at 1:35 PM Ozgur <ozgur@xxxxxxxxx> wrote:
>
>
>
> 10.04.2022, 23:27, "tip-bot2 for Yury Norov" <tip-bot2@xxxxxxxxxxxxx>:
>
> The following commit has been merged into the irq/core branch of tip:
>
> Commit-ID: 911488de0565f1d53bd36174d20917ebc4b44c0e
> Gitweb: https://git.kernel.org/tip/911488de0565f1d53bd36174d20917ebc4b44c0e
> Author: Yury Norov <yury.norov@xxxxxxxxx>
> AuthorDate: Thu, 10 Feb 2022 14:49:05 -08:00
> Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> CommitterDate: Sun, 10 Apr 2022 22:20:28 +02:00
>
> genirq/affinity: Replace cpumask_weight() with cpumask_empty() where appropriate
>
> __irq_build_affinity_masks() calls cpumask_weight() to check if any bit of
> a given cpumask is set.
>
> This can be done more efficiently with cpumask_empty() because
> cpumask_empty() stops traversing the cpumask as soon as it finds first set
> bit, while cpumask_weight() counts all bits unconditionally.
>
> Hello,
> in this patch, struct cpumask *nmsk will also be affected because is called ncpus = cpumask_weight(nmsk);
> right?

Sorry, I don't understand that. The line that you mentioned can't
modify nmsk neither before
nor after this patch. Can you clarify your concern in greater details?

Thanks,
Yury

> Signed-off-by: Yury Norov <yury.norov@xxxxxxxxx>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Link: https://lore.kernel.org/r/20220210224933.379149-22-yury.norov@xxxxxxxxx
>
> ---
> kernel/irq/affinity.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c
> index f7ff891..18740fa 100644
> --- a/kernel/irq/affinity.c
> +++ b/kernel/irq/affinity.c
> @@ -258,7 +258,7 @@ static int __irq_build_affinity_masks(unsigned int startvec,
> nodemask_t nodemsk = NODE_MASK_NONE;
> struct node_vectors *node_vectors;
>
> - if (!cpumask_weight(cpu_mask))
> + if (cpumask_empty(cpu_mask))
> return 0;
>
> nodes = get_nodes_in_cpumask(node_to_cpumask, cpu_mask, &nodemsk);
>
>
> Ozgur