]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
powerpc/smp: Move coregroup mask updation to a new function
authorSrikar Dronamraju <srikar@linux.vnet.ibm.com>
Mon, 21 Sep 2020 09:56:52 +0000 (15:26 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 6 Oct 2020 12:22:27 +0000 (23:22 +1100)
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 <srikar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200921095653.9701-11-srikar@linux.vnet.ibm.com
arch/powerpc/kernel/smp.c

index 925251b0bb0fc191eba08749d85844b843536c5e..45619433c43aec4808ee01f96c70a4bd2ed23a71 100644 (file)
@@ -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. */