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 <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
This commit is contained in:
parent
3ab33d6dc3
commit
b8a97cb459
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user