Messages in this thread | | | Subject | Re: specjbb2005 and aim7 regression with 2.6.32-rc kernels | From | Mike Galbraith <> | Date | Mon, 09 Nov 2009 10:55:01 +0100 |
| |
On Mon, 2009-11-09 at 10:15 +0100, Peter Zijlstra wrote: > On Mon, 2009-11-09 at 08:09 +0100, Mike Galbraith wrote: > > + smp_read_barrier_depends(); > > cpumask_setall(cpus); > > + cpumask_and(cpus, cpus, cpu_online_mask); > > > how about: cpumask_copy(cpus, cpu_online_mask); ?
Yeah, better.
> Also, iirc cpu_online_mask is guaranteed stable when preemption is > disabled, otherwise you need to use get/put_online_cpus(), an > rmb_depends() won't do.
Ok.. I do need a barrier though. I don't see how it can be stable when three other CPUs diddle it. It looks to me like it's stable only when all diddlers serialize on the runqueue lock. (which iff correct means 31 has bugs too, so I'm very likely dead wrong)
/me has very little experience with smp memory woes. Tripping over one is one thing, fixing the bugger is an entirely different matter.
(what I'm about to compile would probably get me spanked on lkml;)
-Mike
| |