Re: [PATCH v2] [mm-unstable] mm: Fix memcg reclaim on memory tiered systems
From: Mina Almasry
Date: Sun Dec 04 2022 - 05:35:38 EST
On Sun, Dec 4, 2022 at 2:32 AM kernel test robot <lkp@xxxxxxxxx> wrote:
>
> Hi Mina,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on akpm-mm/mm-everything]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Mina-Almasry/mm-Fix-memcg-reclaim-on-memory-tiered-systems/20221204-173146
> base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> patch link: https://lore.kernel.org/r/20221204093008.2620459-1-almasrymina%40google.com
> patch subject: [PATCH v2] [mm-unstable] mm: Fix memcg reclaim on memory tiered systems
> config: alpha-buildonly-randconfig-r005-20221204
> compiler: alpha-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/332f41fcb1b1d6bc7dafd40e8c1e10a1a0952849
> git remote add linux-review https://github.com/intel-lab-lkp/linux
> git fetch --no-tags linux-review Mina-Almasry/mm-Fix-memcg-reclaim-on-memory-tiered-systems/20221204-173146
> git checkout 332f41fcb1b1d6bc7dafd40e8c1e10a1a0952849
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=alpha SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
> mm/vmscan.c: In function 'demote_folio_list':
> >> mm/vmscan.c:1618:9: error: too many arguments to function 'node_get_allowed_targets'
> 1618 | node_get_allowed_targets(pgdat, &allowed_mask, demote_from_nodemask);
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> In file included from mm/vmscan.c:46:
> include/linux/memory-tiers.h:94:20: note: declared here
> 94 | static inline void node_get_allowed_targets(pg_data_t *pgdat, nodemask_t *targets)
> | ^~~~~~~~~~~~~~~~~~~~~~~~
>
I missed updating this function signature. Will fix it in v3.
>
> vim +/node_get_allowed_targets +1618 mm/vmscan.c
>
> 1587
> 1588 /*
> 1589 * Take folios on @demote_folios and attempt to demote them to another node.
> 1590 * Folios which are not demoted are left on @demote_folios.
> 1591 */
> 1592 static unsigned int demote_folio_list(struct list_head *demote_folios,
> 1593 struct pglist_data *pgdat,
> 1594 nodemask_t *demote_from_nodemask)
> 1595 {
> 1596 int target_nid = next_demotion_node(pgdat->node_id);
> 1597 unsigned int nr_succeeded;
> 1598 nodemask_t allowed_mask;
> 1599
> 1600 struct migration_target_control mtc = {
> 1601 /*
> 1602 * Allocate from 'node', or fail quickly and quietly.
> 1603 * When this happens, 'page' will likely just be discarded
> 1604 * instead of migrated.
> 1605 */
> 1606 .gfp_mask = (GFP_HIGHUSER_MOVABLE & ~__GFP_RECLAIM) | __GFP_NOWARN |
> 1607 __GFP_NOMEMALLOC | GFP_NOWAIT,
> 1608 .nid = target_nid,
> 1609 .nmask = &allowed_mask
> 1610 };
> 1611
> 1612 if (list_empty(demote_folios))
> 1613 return 0;
> 1614
> 1615 if (target_nid == NUMA_NO_NODE)
> 1616 return 0;
> 1617
> > 1618 node_get_allowed_targets(pgdat, &allowed_mask, demote_from_nodemask);
> 1619
> 1620 /* Demotion ignores all cpuset and mempolicy settings */
> 1621 migrate_pages(demote_folios, alloc_demote_page, NULL,
> 1622 (unsigned long)&mtc, MIGRATE_ASYNC, MR_DEMOTION,
> 1623 &nr_succeeded);
> 1624
> 1625 __count_vm_events(PGDEMOTE_KSWAPD + reclaimer_offset(), nr_succeeded);
> 1626
> 1627 return nr_succeeded;
> 1628 }
> 1629
>
> --
> 0-DAY CI Kernel Test Service
> https://01.org/lkp