[Cbe-oss-dev] Current upstream crash without CONFIG_NUMA
Arnd Bergmann
arnd at arndb.de
Mon Oct 9 18:52:04 EST 2006
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.
Arnd <><
More information about the cbe-oss-dev
mailing list