[PATCH] workque: fix opencoded cpumask_next_and_wrap() in wq_select_unbound_cpu()

Yury Norov posted 1 patch 6 months, 2 weeks ago
kernel/workqueue.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
[PATCH] workque: fix opencoded cpumask_next_and_wrap() in wq_select_unbound_cpu()
Posted by Yury Norov 6 months, 2 weeks ago
From: Yury Norov [NVIDIA] <yury.norov@gmail.com>

The dedicated helper is more verbose and effective comparing to
cpumask_first() followed by cpumask_next().

Signed-off-by: Yury Norov [NVIDIA] <yury.norov@gmail.com>
---
 kernel/workqueue.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 3bef0754cf73..3518ea5ec55f 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -2221,12 +2221,9 @@ static int wq_select_unbound_cpu(int cpu)
 	}
 
 	new_cpu = __this_cpu_read(wq_rr_cpu_last);
-	new_cpu = cpumask_next_and(new_cpu, wq_unbound_cpumask, cpu_online_mask);
-	if (unlikely(new_cpu >= nr_cpu_ids)) {
-		new_cpu = cpumask_first_and(wq_unbound_cpumask, cpu_online_mask);
-		if (unlikely(new_cpu >= nr_cpu_ids))
-			return cpu;
-	}
+	new_cpu = cpumask_next_and_wrap(new_cpu, wq_unbound_cpumask, cpu_online_mask);
+	if (unlikely(new_cpu >= nr_cpu_ids))
+		return cpu;
 	__this_cpu_write(wq_rr_cpu_last, new_cpu);
 
 	return new_cpu;
-- 
2.43.0
Re: [PATCH] workque: fix opencoded cpumask_next_and_wrap() in wq_select_unbound_cpu()
Posted by Tejun Heo 6 months, 1 week ago
On Wed, Jun 04, 2025 at 08:21:37PM -0400, Yury Norov wrote:
> From: Yury Norov [NVIDIA] <yury.norov@gmail.com>
> 
> The dedicated helper is more verbose and effective comparing to
> cpumask_first() followed by cpumask_next().
> 
> Signed-off-by: Yury Norov [NVIDIA] <yury.norov@gmail.com>

Applied to wq/for-6.17 w/ subsystem name fixed.

Thanks.

-- 
tejun