[Cbe-oss-dev] Current upstream crash without CONFIG_NUMA

Benjamin Herrenschmidt benh at kernel.crashing.org
Mon Oct 9 20:21:18 EST 2006


On Mon, 2006-10-09 at 10:52 +0200, Arnd Bergmann wrote:
> On Monday 09 October 2006 06:59, Benjamin Herrenschmidt wrote:
> > The current upstream code (linus tree) will crash if CONFIG_NUMA is not
> > set at boot time. In spu_base.c, the global list of SPUs is maintained
> > via an array of MAX_NUMNODES. The problem is that without CONFIG_NUMA,
> > it is set to 1, but we do access indexes in this array based on the SPU
> > nodes in the device-tree without checking.
> > 
> > What is the proper fix here ? Use a MAX_CBE thingy like we do in a
> > couple of other places (like the one in cbe_regs.c) ? Make CONFIG_NUMA
> > mandatory (select'ed) ? We still need to validate the nodes we get from
> > the device-tree against the size of the array though.
> 
> If we make CONFIG_NUMA mandatory, that should only be needed for
> systems with more than one CPU. E.g. there is no good reason to
> treat the PS3 as NUMA.
> 
> If we make the assumption that a NUMA node is exactly the same as a
> CBEA node (as we do in a few places), that has causes problems on
> older firmware that does not have the ibm,associativity properties
> in place. I'm not sure at what time we can deprecate those, but it
> sounds like a good path for the future.

So I drop spe's that are on a node >= MAX_NUMNODES at discovery time ?

I should at least add a warning tho ...

Is that ok ?

Ben.





More information about the cbe-oss-dev mailing list