Re: [PATCH v11 08/10] dt, numa: Add NUMA dt binding implementation.

From: David Daney
Date: Tue Mar 01 2016 - 11:57:50 EST


On 03/01/2016 08:47 AM, Rob Herring wrote:
On Thu, Feb 25, 2016 at 7:26 PM, David Daney <ddaney@xxxxxxxxxxxxxxxxxx> wrote:
On 02/23/2016 11:36 AM, Rob Herring wrote:

On Fri, Feb 19, 2016 at 05:13:17PM -0800, David Daney wrote:

From: Ganapatrao Kulkarni <gkulkarni@xxxxxxxxxxxxxxxxxx>

ADD device tree node parsing for NUMA topology using device
"numa-node-id" property distance-map.


I still want an adequate explanation why NUMA setup cannot be done with
an unflattened tree. PowerPC manages to do that and should have a
similar init flow being memblock based, so I would expect arm64 can too.


Many things could be done. Really, we want to know what *should* be done.

In the context of the current arm64 memory initialization we (more or less)
do:

1) early_init_fdt_scan_reserved_mem();
2) memory_present()
3) sparse_init()
4) other things
5) unflatten_device_tree()

We are already reading information out of the FDT at #1.

This patch set adds a step between 1 and 2 where we read NUMA information
out of the FDT.

The dependency on unflattening is that memblock is up and we can
allocate a chunk from it. Isn't that dependency met by step 1

No.

or is
there a dependency on sparsemem (or something else)?

Will Deacon talked about this over here:

https://lkml.org/lkml/2016/2/26/782

I am happy to modify the patch set, but I don't want to get stuck as an intermediary between two opposing blocs.

David Daney