On Tue, 19 Jun 2012 10:28:53 +0200, Vincent Guittot wrote:
This factorization has also been proposed in another patchset that has not been merged yet: http://lists.infradead.org/pipermail/linux-arm-kernel/2012-January/080873.ht... So, this patch could be dropped depending of the state of the other one.
Signed-off-by: Lorenzo Pieralisi lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org Signed-off-by: Vincent Guittot vincent.guittot-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org
arch/arm/kernel/topology.c | 47 ++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 21 deletions(-)
diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c index 37e2e57..92c2fb3 100644 --- a/arch/arm/kernel/topology.c +++ b/arch/arm/kernel/topology.c @@ -82,6 +82,31 @@ const struct cpumask *cpu_coregroup_mask(int cpu) return &cpu_topology[cpu].core_sibling; } +void update_siblings_masks(unsigned int cpuid) +{
- struct cputopo_arm *cpu_topo, *cpuid_topo = &cpu_topology[cpuid];
- int cpu;
- /* update core and thread sibling masks */
- for_each_possible_cpu(cpu) {
cpu_topo = &cpu_topology[cpu];
if (cpuid_topo->socket_id == cpu_topo->socket_id) {
I think this will make the code a little bit cleaner:
if (cpuid_topo->socket_id != cpu_topo->socket_id) continue;
Thanks, Namhyung
cpumask_set_cpu(cpuid, &cpu_topo->core_sibling);
if (cpu != cpuid)
cpumask_set_cpu(cpu, &cpuid_topo->core_sibling);
if (cpuid_topo->core_id == cpu_topo->core_id) {
cpumask_set_cpu(cpuid,
&cpu_topo->thread_sibling);
if (cpu != cpuid)
cpumask_set_cpu(cpu,
&cpuid_topo->thread_sibling);
}
}
- }
- smp_wmb();
+}