Re: specjbb2005 and aim7 regression with 2.6.32-rc kernels

From: Mike Galbraith
Date: Mon Nov 09 2009 - 04:55:13 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/