* Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx> wrote: > In find_next_best_node(), We skipped the memoryless nodes s/We /we s/the memoryless nodes /memoryless nodes > when building the zonelists of other normal nodes (N_NORMAL), > but did not skip the memoryless node itself when building > the zonelist. This will cause it to be traversed at runtime. > > For example, say we have node0 and node1, node0 is memoryless > node, then the fallback order of node0 and node1 as follows: > > [ 0.153005] Fallback order for Node 0: 0 1 > [ 0.153564] Fallback order for Node 1: 1 > > After this patch, we skip memoryless node0 entirely, then > the fallback order of node0 and node1 as follows: s/fallback /fall back > > [ 0.155236] Fallback order for Node 0: 1 > [ 0.155806] Fallback order for Node 1: 1 > > So it becomes completely invisible, which will reduce runtime > overhead. > > And in this way, we will not try to allocate pages from memoryless > node0, then the panic mentioned in [1] will also be fixed. Even though > this problem has been solved by dropping the NODE_MIN_SIZE constrain > in x86 [2], it would be better to fix it in core MM as well. s/in core MM /in the core MM > [1]. https://lore.kernel.org/all/20230212110305.93670-1-zhengqi.arch@xxxxxxxxxxxxx/ > [2]. https://lore.kernel.org/all/20231017062215.171670-1-rppt@xxxxxxxxxx/ > > Signed-off-by: Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx> > Acked-by: David Hildenbrand <david@xxxxxxxxxx> > + /* > + * Use the local node if we haven't already. But for memoryless local > + * node, we should skip it and fallback to other nodes. s/fallback /fall back s/already. But /already, but Acked-by: Ingo Molnar <mingo@xxxxxxxxxx> Thanks, Ingo