Thread (3 messages) 3 messages, 2 authors, 2012-02-16

Re: [PATCH 4/12] arch/mips: remove references to cpu_*_map.

From: Rusty Russell <hidden>
Date: 2012-02-16 01:51:17
Also in: lkml

On Wed, 15 Feb 2012 14:50:02 +0530, "Srivatsa S. Bhat" [off-list ref] wrote:
quoted
-		cpu_clear(smp_processor_id(), mask);
-		for_each_cpu_mask(cpu, mask)
-			if (cpu_context(cpu, mm))
+		for_each_online_cpu(cpu) {
+			if (cpu != smp_processor_id() && cpu_context(cpu, mm))
 				cpu_context(cpu, mm) = 0;
+		}

Strictly speaking, this one is not a mere cleanup. It causes a subtle change in
behaviour: earlier, it used to iterate over a local copy of cpu_online_mask, which
wouldn't change. However, with this patch, it will iterate directly over
cpu_online_mask, which can change underneath. (The preempt_disable() won't stop
new CPUs from coming in.. it only prevents CPUs from going offline, that too
provided that we use stop_machine stuff for CPU offline, which we do currently.)
There's a preempt_disable() around this whole function, so online_mask
can't change.

Same with the others.
quoted
+		mask = *cpu_online_mask;
+	cpumask_clear(&mask, cpu);

This should be cpumask_clear_cpu(cpu, &mask);
Good catch.  I copied the bitmask ops, and continually regret it.

I've rolled all these together with your fixes, added your ia64 patch,
and am rebasing to -next now, so I can hand this all across to akpm.

Thanks,
Rusty.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help