There is no need to update last_pgdat for each zone, only update last_pgdat when iterating the first zone of a node. Signed-off-by: Chen Wandun <chenwandun@xxxxxxxxxx> --- mm/page_alloc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index f648decfe39d..ea282630aedc 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -4674,9 +4674,10 @@ static void wake_all_kswapds(unsigned int order, gfp_t gfp_mask, for_each_zone_zonelist_nodemask(zone, z, ac->zonelist, highest_zoneidx, ac->nodemask) { - if (last_pgdat != zone->zone_pgdat) + if (last_pgdat != zone->zone_pgdat) { wakeup_kswapd(zone, gfp_mask, order, highest_zoneidx); - last_pgdat = zone->zone_pgdat; + last_pgdat = zone->zone_pgdat; + } } } -- 2.18.0.huawei.25