[PATCH 3/6] driver core: cpu: optimize print_cpus_isolated()

Yury Norov
2024-05-13T22:01:54Z

The function may be called with housekeeping_cpumask == cpu_possible_mask,
and in such case the 'isolated' cpumask would be just empty.

We can call cpumask_clear() in that case, and save CPU cycles.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
drivers/base/cpu.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
index 56fba44ba391..1322957286dd 100644
--- a/drivers/base/cpu.c
+++ b/drivers/base/cpu.c
@@ -282,8 +282,10 @@ static ssize_t print_cpus_isolated(struct device *dev,
if (!alloc_cpumask_var(&isolated, GFP_KERNEL))
return -ENOMEM;

- cpumask_andnot(isolated, cpu_possible_mask,
- housekeeping_cpumask(HK_TYPE_DOMAIN));
+ if (cpu_possible_mask != housekeeping_cpumask(HK_TYPE_DOMAIN))
+ cpumask_andnot(isolated, cpu_possible_mask, housekeeping_cpumask(HK_TYPE_DOMAIN));
+ else
+ cpumask_clear(isolated);
len = sysfs_emit(buf, "%*pbl\n", cpumask_pr_args(isolated));

free_cpumask_var(isolated);
--
2.40.1