Re: specjbb2005 and aim7 regression with 2.6.32-rc kernels

Mike Galbraith
2009-11-09T09:55:01Z

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