public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
* Re: [RFC PATCH v3 2/8] mm: aggregate working set information into histograms
       [not found] <20240327213108.2384666-3-yuanchu@google.com>
@ 2024-03-30  8:15 ` kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-03-30  8:15 UTC (permalink / raw)
  To: Yuanchu Xie; +Cc: llvm, oe-kbuild-all

Hi Yuanchu,

[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:

[auto build test WARNING on v6.8]
[cannot apply to akpm-mm/mm-everything driver-core/driver-core-testing driver-core/driver-core-next driver-core/driver-core-linus linus/master v6.9-rc1 next-20240328]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Yuanchu-Xie/mm-multi-gen-LRU-ignore-non-leaf-pmd_young-for-force_scan-true/20240328-053344
base:   v6.8
patch link:    https://lore.kernel.org/r/20240327213108.2384666-3-yuanchu%40google.com
patch subject: [RFC PATCH v3 2/8] mm: aggregate working set information into histograms
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20240330/202403301646.6FJ4eUMp-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 79ba323bdd0843275019e16b6e9b35133677c514)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240330/202403301646.6FJ4eUMp-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202403301646.6FJ4eUMp-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from mm/vmscan.c:15:
   In file included from include/linux/mm.h:2188:
   include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     508 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     509 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     515 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     516 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     522 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     527 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     528 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     536 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     537 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   In file included from mm/vmscan.c:30:
   include/linux/mm_inline.h:47:41: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
      47 |         __mod_lruvec_state(lruvec, NR_LRU_BASE + lru, nr_pages);
         |                                    ~~~~~~~~~~~ ^ ~~~
   include/linux/mm_inline.h:49:22: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
      49 |                                 NR_ZONE_LRU_BASE + lru, nr_pages);
         |                                 ~~~~~~~~~~~~~~~~ ^ ~~~
   mm/vmscan.c:376:51: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     376 |                         size += zone_page_state(zone, NR_ZONE_LRU_BASE + lru);
         |                                                       ~~~~~~~~~~~~~~~~ ^ ~~~
   mm/vmscan.c:1688:4: warning: arithmetic between different enumeration types ('enum vm_event_item' and 'enum zone_type') [-Wenum-enum-conversion]
    1688 |                         __count_zid_vm_events(PGSCAN_SKIP, zid, nr_skipped[zid]);
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:135:34: note: expanded from macro '__count_zid_vm_events'
     135 |         __count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta)
         |                           ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
   mm/vmscan.c:2194:51: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
    2194 |         inactive = lruvec_page_state(lruvec, NR_LRU_BASE + inactive_lru);
         |                                              ~~~~~~~~~~~ ^ ~~~~~~~~~~~~
   mm/vmscan.c:2195:49: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
    2195 |         active = lruvec_page_state(lruvec, NR_LRU_BASE + active_lru);
         |                                            ~~~~~~~~~~~ ^ ~~~~~~~~~~
>> mm/vmscan.c:3819:6: warning: no previous prototype for function 'try_to_inc_max_seq' [-Wmissing-prototypes]
    3819 | bool try_to_inc_max_seq(struct lruvec *lruvec, unsigned long max_seq,
         |      ^
   mm/vmscan.c:3819:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    3819 | bool try_to_inc_max_seq(struct lruvec *lruvec, unsigned long max_seq,
         | ^
         | static 
   mm/vmscan.c:4375:4: warning: arithmetic between different enumeration types ('enum vm_event_item' and 'enum zone_type') [-Wenum-enum-conversion]
    4375 |                         __count_zid_vm_events(PGSCAN_SKIP, zone, skipped_zone);
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:135:34: note: expanded from macro '__count_zid_vm_events'
     135 |         __count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta)
         |                           ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
   mm/vmscan.c:6231:3: warning: arithmetic between different enumeration types ('enum vm_event_item' and 'enum zone_type') [-Wenum-enum-conversion]
    6231 |                 __count_zid_vm_events(ALLOCSTALL, sc->reclaim_idx, 1);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:135:34: note: expanded from macro '__count_zid_vm_events'
     135 |         __count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta)
         |                           ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
   14 warnings generated.


vim +/try_to_inc_max_seq +3819 mm/vmscan.c

  3818	
> 3819	bool try_to_inc_max_seq(struct lruvec *lruvec, unsigned long max_seq,
  3820				       struct scan_control *sc, bool can_swap, bool force_scan)
  3821	{
  3822		bool success;
  3823		struct lru_gen_mm_walk *walk;
  3824		struct mm_struct *mm = NULL;
  3825		struct lru_gen_folio *lrugen = &lruvec->lrugen;
  3826		struct lru_gen_mm_state *mm_state = get_mm_state(lruvec);
  3827	
  3828		VM_WARN_ON_ONCE(max_seq > READ_ONCE(lrugen->max_seq));
  3829	
  3830		if (!mm_state)
  3831			return inc_max_seq(lruvec, max_seq, can_swap, force_scan);
  3832	
  3833		/* see the comment in iterate_mm_list() */
  3834		if (max_seq <= READ_ONCE(mm_state->seq))
  3835			return false;
  3836	
  3837		/*
  3838		 * If the hardware doesn't automatically set the accessed bit, fallback
  3839		 * to lru_gen_look_around(), which only clears the accessed bit in a
  3840		 * handful of PTEs. Spreading the work out over a period of time usually
  3841		 * is less efficient, but it avoids bursty page faults.
  3842		 */
  3843		if (!should_walk_mmu()) {
  3844			success = iterate_mm_list_nowalk(lruvec, max_seq);
  3845			goto done;
  3846		}
  3847	
  3848		walk = set_mm_walk(NULL, true);
  3849		if (!walk) {
  3850			success = iterate_mm_list_nowalk(lruvec, max_seq);
  3851			goto done;
  3852		}
  3853	
  3854		walk->lruvec = lruvec;
  3855		walk->max_seq = max_seq;
  3856		walk->can_swap = can_swap;
  3857		walk->force_scan = force_scan;
  3858	
  3859		do {
  3860			success = iterate_mm_list(lruvec, walk, &mm);
  3861			if (mm)
  3862				walk_mm(lruvec, mm, walk);
  3863		} while (mm);
  3864	done:
  3865		if (success) {
  3866			success = inc_max_seq(lruvec, max_seq, can_swap, force_scan);
  3867			WARN_ON_ONCE(!success);
  3868		}
  3869	
  3870		return success;
  3871	}
  3872	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-03-30  8:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20240327213108.2384666-3-yuanchu@google.com>
2024-03-30  8:15 ` [RFC PATCH v3 2/8] mm: aggregate working set information into histograms kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox