Hi zhou, Thank you for the patch! Yet something to improve: [auto build test ERROR on tip/perf/core] [cannot apply to linux/master linus/master hnaz-linux-mm/master v5.12-rc2 next-20210312] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/zhou/kswapd-no-need-reclaim-cma-pages-triggered-by-unmovable-allocation/20210313-163541 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8bcfdd7cad3dffdd340f9a79098cbf331eb2cd53 config: m68k-randconfig-c023-20210313 (attached as .config) compiler: m68k-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/f40216b4d0325cf640d1c3ebe448772d6430bc6a git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review zhou/kswapd-no-need-reclaim-cma-pages-triggered-by-unmovable-allocation/20210313-163541 git checkout f40216b4d0325cf640d1c3ebe448772d6430bc6a # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): >> mm/vmscan.c:3991:6: error: expected ';', ',' or ')' before 'enum' 3991 | enum zone_type highest_zoneidx) | ^~~~ mm/vmscan.c:3405:13: warning: 'pgdat_watermark_boosted' defined but not used [-Wunused-function] 3405 | static bool pgdat_watermark_boosted(pg_data_t *pgdat, int highest_zoneidx) | ^~~~~~~~~~~~~~~~~~~~~~~ vim +3991 mm/vmscan.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 3982 ^1da177e4c3f41 Linus Torvalds 2005-04-16 3983 /* 5ecd9d403ad081 David Rientjes 2018-04-05 3984 * A zone is low on free memory or too fragmented for high-order memory. If 5ecd9d403ad081 David Rientjes 2018-04-05 3985 * kswapd should reclaim (direct reclaim is deferred), wake it up for the zone's 5ecd9d403ad081 David Rientjes 2018-04-05 3986 * pgdat. It will wake up kcompactd after reclaiming memory. If kswapd reclaim 5ecd9d403ad081 David Rientjes 2018-04-05 3987 * has failed or is not needed, still wake up kcompactd if only compaction is 5ecd9d403ad081 David Rientjes 2018-04-05 3988 * needed. ^1da177e4c3f41 Linus Torvalds 2005-04-16 3989 */ f40216b4d0325c zhou xianrong 2021-03-13 3990 void wakeup_kswapd(struct zone *zone, gfp_t gfp_flags, int order, int migratetype 97a225e69a1f88 Joonsoo Kim 2020-06-03 @3991 enum zone_type highest_zoneidx) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3992 { ^1da177e4c3f41 Linus Torvalds 2005-04-16 3993 pg_data_t *pgdat; 5644e1fbbfe15a Qian Cai 2020-04-01 3994 enum zone_type curr_idx; f40216b4d0325c zhou xianrong 2021-03-13 3995 int curr_migratetype; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3996 6aa303defb7454 Mel Gorman 2016-09-01 3997 if (!managed_zone(zone)) ^1da177e4c3f41 Linus Torvalds 2005-04-16 3998 return; ^1da177e4c3f41 Linus Torvalds 2005-04-16 3999 5ecd9d403ad081 David Rientjes 2018-04-05 4000 if (!cpuset_zone_allowed(zone, gfp_flags)) ^1da177e4c3f41 Linus Torvalds 2005-04-16 4001 return; 5644e1fbbfe15a Qian Cai 2020-04-01 4002 88f5acf88ae6a9 Mel Gorman 2011-01-13 4003 pgdat = zone->zone_pgdat; 97a225e69a1f88 Joonsoo Kim 2020-06-03 4004 curr_idx = READ_ONCE(pgdat->kswapd_highest_zoneidx); f40216b4d0325c zhou xianrong 2021-03-13 4005 curr_migratetype = READ_ONCE(pgdat->kswapd_migratetype); 5644e1fbbfe15a Qian Cai 2020-04-01 4006 97a225e69a1f88 Joonsoo Kim 2020-06-03 4007 if (curr_idx == MAX_NR_ZONES || curr_idx < highest_zoneidx) 97a225e69a1f88 Joonsoo Kim 2020-06-03 4008 WRITE_ONCE(pgdat->kswapd_highest_zoneidx, highest_zoneidx); 5644e1fbbfe15a Qian Cai 2020-04-01 4009 5644e1fbbfe15a Qian Cai 2020-04-01 4010 if (READ_ONCE(pgdat->kswapd_order) < order) 5644e1fbbfe15a Qian Cai 2020-04-01 4011 WRITE_ONCE(pgdat->kswapd_order, order); dffcac2cb88e4e Shakeel Butt 2019-07-04 4012 f40216b4d0325c zhou xianrong 2021-03-13 4013 if (curr_migratetype == MIGRATE_TYPES || is_migrate_movable(migratetype)) f40216b4d0325c zhou xianrong 2021-03-13 4014 WRITE_ONCE(pgdat->kswapd_migratetype, migratetype); f40216b4d0325c zhou xianrong 2021-03-13 4015 8d0986e289a4b0 Con Kolivas 2005-09-13 4016 if (!waitqueue_active(&pgdat->kswapd_wait)) ^1da177e4c3f41 Linus Torvalds 2005-04-16 4017 return; e1a556374abc0d Mel Gorman 2016-07-28 4018 5ecd9d403ad081 David Rientjes 2018-04-05 4019 /* Hopeless node, leave it to direct reclaim if possible */ 5ecd9d403ad081 David Rientjes 2018-04-05 4020 if (pgdat->kswapd_failures >= MAX_RECLAIM_RETRIES || 97a225e69a1f88 Joonsoo Kim 2020-06-03 4021 (pgdat_balanced(pgdat, order, highest_zoneidx) && 97a225e69a1f88 Joonsoo Kim 2020-06-03 4022 !pgdat_watermark_boosted(pgdat, highest_zoneidx))) { 5ecd9d403ad081 David Rientjes 2018-04-05 4023 /* 5ecd9d403ad081 David Rientjes 2018-04-05 4024 * There may be plenty of free memory available, but it's too 5ecd9d403ad081 David Rientjes 2018-04-05 4025 * fragmented for high-order allocations. Wake up kcompactd 5ecd9d403ad081 David Rientjes 2018-04-05 4026 * and rely on compaction_suitable() to determine if it's 5ecd9d403ad081 David Rientjes 2018-04-05 4027 * needed. If it fails, it will defer subsequent attempts to 5ecd9d403ad081 David Rientjes 2018-04-05 4028 * ratelimit its work. 5ecd9d403ad081 David Rientjes 2018-04-05 4029 */ 5ecd9d403ad081 David Rientjes 2018-04-05 4030 if (!(gfp_flags & __GFP_DIRECT_RECLAIM)) 97a225e69a1f88 Joonsoo Kim 2020-06-03 4031 wakeup_kcompactd(pgdat, order, highest_zoneidx); 88f5acf88ae6a9 Mel Gorman 2011-01-13 4032 return; 5ecd9d403ad081 David Rientjes 2018-04-05 4033 } 88f5acf88ae6a9 Mel Gorman 2011-01-13 4034 97a225e69a1f88 Joonsoo Kim 2020-06-03 4035 trace_mm_vmscan_wakeup_kswapd(pgdat->node_id, highest_zoneidx, order, f40216b4d0325c zhou xianrong 2021-03-13 4036 migratetype, gfp_flags); 8d0986e289a4b0 Con Kolivas 2005-09-13 4037 wake_up_interruptible(&pgdat->kswapd_wait); ^1da177e4c3f41 Linus Torvalds 2005-04-16 4038 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 4039 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org