Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx> writes: > In offline_pages(), if a node becomes memoryless, we > will clear its N_MEMORY state by calling node_states_clear_node(). > But we do this after rebuilding the zonelists by calling > build_all_zonelists(), which will cause this memoryless node to > still be in the fallback list of other nodes. For fallback list, do you mean pgdat->node_zonelists[]? If so, in build_all_zonelists __build_all_zonelists build_zonelists build_zonelists_in_node_order build_zonerefs_node populated_zone() will be checked before adding zone into zonelist. So, IIUC, we will not try to allocate from the memory less node. -- Best Regards, Huang, Ying > This will incur > some runtime overhead. > > To drop memoryless node from fallback lists in this case, just > call node_states_clear_node() before calling build_all_zonelists(). > > Signed-off-by: Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx> > Acked-by: David Hildenbrand <david@xxxxxxxxxx> [snip] -- Best Regards, Huang, Ying