From b8a97cb4599cda28bd3b3bc13042f5803b42ad65 Mon Sep 17 00:00:00 2001 From: Srikar Dronamraju Date: Mon, 21 Sep 2020 15:26:52 +0530 Subject: [PATCH] powerpc/smp: Move coregroup mask updation to a new function Move the logic for updating the coregroup mask of a CPU to its own function. This will help in reworking the updation of coregroup mask in subsequent patch. Signed-off-by: Srikar Dronamraju Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/20200921095653.9701-11-srikar@linux.vnet.ibm.com --- arch/powerpc/kernel/smp.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 925251b..4561943 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -1337,6 +1337,23 @@ static inline void add_cpu_to_smallcore_masks(int cpu) } } +static void update_coregroup_mask(int cpu) +{ + int first_thread = cpu_first_thread_sibling(cpu); + int coregroup_id = cpu_to_coregroup_id(cpu); + int i; + + cpumask_set_cpu(cpu, cpu_coregroup_mask(cpu)); + for_each_cpu_and(i, cpu_online_mask, cpu_cpu_mask(cpu)) { + int fcpu = cpu_first_thread_sibling(i); + + if (fcpu == first_thread) + set_cpus_related(cpu, i, cpu_coregroup_mask); + else if (coregroup_id == cpu_to_coregroup_id(i)) + set_cpus_related(cpu, i, cpu_coregroup_mask); + } +} + static void add_cpu_to_masks(int cpu) { int first_thread = cpu_first_thread_sibling(cpu); @@ -1355,19 +1372,8 @@ static void add_cpu_to_masks(int cpu) add_cpu_to_smallcore_masks(cpu); update_mask_by_l2(cpu); - if (has_coregroup_support()) { - int coregroup_id = cpu_to_coregroup_id(cpu); - - cpumask_set_cpu(cpu, cpu_coregroup_mask(cpu)); - for_each_cpu_and(i, cpu_online_mask, cpu_cpu_mask(cpu)) { - int fcpu = cpu_first_thread_sibling(i); - - if (fcpu == first_thread) - set_cpus_related(cpu, i, cpu_coregroup_mask); - else if (coregroup_id == cpu_to_coregroup_id(i)) - set_cpus_related(cpu, i, cpu_coregroup_mask); - } - } + if (has_coregroup_support()) + update_coregroup_mask(cpu); } /* Activate a secondary processor. */ -- 2.7.4