On 2023/5/25 16:24, Mike Rapoport wrote: > On Thu, May 25, 2023 at 04:01:48AM +0000, Haifeng Xu wrote: >> Since commit 03e85f9d5f1f ("mm/page_alloc: Introduce free_area_init_core_hotplug"), >> free_area_init_node() doesn't get called in hotplug path anymore, so >> remove the comments related to it. >> >> Signed-off-by: Haifeng Xu <haifeng.xu@xxxxxxxxxx> >> --- >> mm/mm_init.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/mm/mm_init.c b/mm/mm_init.c >> index 7f7f9c677854..cf55bba04b23 100644 >> --- a/mm/mm_init.c >> +++ b/mm/mm_init.c >> @@ -1174,7 +1174,6 @@ static unsigned long __init zone_absent_pages_in_node(int nid, >> unsigned long zone_start_pfn, zone_end_pfn; >> unsigned long nr_absent; >> >> - /* When hotadd a new node from cpu_up(), the node should be empty */ >> if (!node_start_pfn && !node_end_pfn) >> return 0; > > I think it's better to call calculate_node_totalpages only if node actually has > memory and for node with no memory we just need to make sure all the node > and zone page counts are indeed set to 0. Yes, it's good advice. > > Then the condition here and in zone_spanned_pages_in_node() can be removed > along with the comment and patch 2 won't be required at all. Regarding to patch 2, if the node has mmeory but contains zone with no memory, it can avoid the calculation of absent pages. I thik we can add a check that whether zone_end_pfn is equal to zone_start_pfn in patch 3. If it's true, return 0 directly. So patch 2 can be dropped. Thanks! > >> @@ -1227,7 +1226,7 @@ static unsigned long __init zone_spanned_pages_in_node(int nid, >> { >> unsigned long zone_low = arch_zone_lowest_possible_pfn[zone_type]; >> unsigned long zone_high = arch_zone_highest_possible_pfn[zone_type]; >> - /* When hotadd a new node from cpu_up(), the node should be empty */ >> + >> if (!node_start_pfn && !node_end_pfn) >> return 0; >> >> -- >> 2.25.1 >> >> >