Re: [RFC PATCH 2/3] topology: support node_numa_mem() for determining the fallback node

Joonsoo Kim
2014-02-10T01:09:32Z

On Sat, Feb 08, 2014 at 01:57:39AM -0800, David Rientjes wrote:
> On Fri, 7 Feb 2014, Joonsoo Kim wrote:
>
> > > It seems like a better approach would be to do this when a node is brought
> > > online and determine the fallback node based not on the zonelists as you
> > > do here but rather on locality (such as through a SLIT if provided, see
> > > node_distance()).
> >
> > Hmm...
> > I guess that zonelist is base on locality. Zonelist is generated using
> > node_distance(), so I think that it reflects locality. But, I'm not expert
> > on NUMA, so please let me know what I am missing here :)
> >
>
> The zonelist is, yes, but I'm talking about memoryless and cpuless nodes.
> If your solution is going to become the generic kernel API that determines
> what node has local memory for a particular node, then it will have to
> support all definitions of node. That includes nodes that consist solely
> of I/O, chipsets, networking, or storage devices. These nodes may not
> have memory or cpus, so doing it as part of onlining cpus isn't going to
> be generic enough. You want a node_to_mem_node() API for all possible
> node types (the possible node types listed above are straight from the
> ACPI spec). For 99% of people, node_to_mem_node(X) is always going to be
> X and we can optimize for that, but any solution that relies on cpu online
> is probably shortsighted right now.
>
> I think it would be much better to do this as a part of setting a node to
> be online.

Okay. I got your point.
I will change it to rely on node online if this patch is really needed.

Thanks!