Re: [patch 6/6] x86: cpumask_of_node() should handle -1 as a node

Anton Blanchard
2010-01-06T23:40:20Z

Hi David,

> Do we really want to do this? A nid of -1 is undefined, so the result of
> cpumask_of_node(-1) should be undefined; there's no formal definition that
> a nid of -1 follows the semantics that we use for x86 pci buses, for
> example, where it implies no NUMA locality in all cases.

I don't like the use of -1 as a node, but it's much more widespread than
x86; including sh, powerpc, sparc and the generic topology code. eg:

#fdef CONFIG_PCI
extern int pcibus_to_node(struct pci_bus *pbus);
#else
static inline int pcibus_to_node(struct pci_bus *pbus)
{
return -1;
}

It would be nice to get rid of this special case but I suspect that's not
2.6.33 material.

Speaking of invalid node ids, I also noticed the scheduler isn't using
node iterators:

for (i = 0; i < nr_node_ids; i++) {

which should be fixed at some stage too since it doesn't allow us to
allocate the node structures sparsely.

Anton