Re: [PATCH] mm, numa: boot cpu should bound to the node0 when node_off enable

From: Catalin Marinas
Date: Thu Aug 18 2016 - 13:22:08 EST


On Thu, Aug 18, 2016 at 09:09:26PM +0800, zhongjiang wrote:
> At present, boot cpu will bound to a node from device tree when node_off enable.
> if the node is not initialization, it will lead to a following problem.
>
> next_zones_zonelist+0x18/0x80
> __build_all_zonelists+0x1e0/0x288
> build_all_zonelists_init+0x10/0x1c
> build_all_zonelists+0x114/0x128
> start_kernel+0x1a0/0x414

I think this "problem" is missing a lot of information. Is this supposed
to be a kernel panic?

> The patch fix it by fallback to node 0. therefore, the cpu will bound to the node
> correctly.
>
> Signed-off-by: zhongjiang <zhongjiang@xxxxxxxxxx>
> ---
> arch/arm64/mm/numa.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c
> index 4dcd7d6..1f8f5da 100644
> --- a/arch/arm64/mm/numa.c
> +++ b/arch/arm64/mm/numa.c
> @@ -119,7 +119,7 @@ void numa_store_cpu_info(unsigned int cpu)
> void __init early_map_cpu_to_node(unsigned int cpu, int nid)
> {
> /* fallback to node 0 */
> - if (nid < 0 || nid >= MAX_NUMNODES)
> + if (nid < 0 || nid >= MAX_NUMNODES || numa_off)
> nid = 0;
>
> cpu_to_node_map[cpu] = nid;

The patch looks fine (slight inconsistence from the map_cpu_to_node()
callers but I guess we don't want to expose numa_off outside this file).
I would however like to see an Ack from Ganapat (cc'ed).

--
Catalin