Re: [PATCH v4 08/13] mm/madvise: introduce MADV_COLLAPSE sync hugepage collapse

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Zach,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on next-20220502]
[cannot apply to hnaz-mm/master rostedt-trace/for-next deller-parisc/for-next arnd-asm-generic/master linus/master v5.18-rc5 v5.18-rc4 v5.18-rc3 v5.18-rc5]
[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/intel-lab-lkp/linux/commits/Zach-O-Keefe/mm-khugepaged-record-SCAN_PMD_MAPPED-when-scan_pmd-finds-THP/20220503-031727
base:    9f9b9a2972eb8dcaad09d826c5c6d7488eaca3e6
config: x86_64-randconfig-a011-20220502 (https://download.01.org/0day-ci/archive/20220503/202205031501.6qBJrsPn-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 09325d36061e42b495d1f4c7e933e260eac260ed)
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/9f69946c58d8d53c271a4d75ac477b4a5164a511
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Zach-O-Keefe/mm-khugepaged-record-SCAN_PMD_MAPPED-when-scan_pmd-finds-THP/20220503-031727
        git checkout 9f69946c58d8d53c271a4d75ac477b4a5164a511
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

   mm/khugepaged.c:1105:29: warning: incompatible integer to pointer conversion passing 'gfp_t' (aka 'unsigned int') to parameter of type 'struct page **' [-Wint-conversion]
           if (!khugepaged_alloc_page(gfp, node, cc))
                                      ^~~
   mm/khugepaged.c:963:49: note: passing argument to parameter 'hpage' here
   static bool khugepaged_alloc_page(struct page **hpage, gfp_t gfp, int node)
                                                   ^
   mm/khugepaged.c:1105:40: warning: incompatible pointer to integer conversion passing 'struct collapse_control *' to parameter of type 'int' [-Wint-conversion]
           if (!khugepaged_alloc_page(gfp, node, cc))
                                                 ^~
   mm/khugepaged.c:963:71: note: passing argument to parameter 'node' here
   static bool khugepaged_alloc_page(struct page **hpage, gfp_t gfp, int node)
                                                                         ^
>> mm/khugepaged.c:2565:3: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
                   case SCAN_PMD_NULL:
                   ^
   mm/khugepaged.c:2565:3: note: insert 'break;' to avoid fall-through
                   case SCAN_PMD_NULL:
                   ^
                   break; 
   3 warnings generated.


vim +2565 mm/khugepaged.c

  2511	
  2512	int madvise_collapse(struct vm_area_struct *vma, struct vm_area_struct **prev,
  2513			     unsigned long start, unsigned long end)
  2514	{
  2515		struct collapse_control cc = {
  2516			.enforce_pte_scan_limits = false,
  2517			.enforce_young = false,
  2518			.last_target_node = NUMA_NO_NODE,
  2519			.hpage = NULL,
  2520			.alloc_charge_hpage = &madvise_alloc_charge_hpage,
  2521		};
  2522		struct mm_struct *mm = vma->vm_mm;
  2523		unsigned long hstart, hend, addr;
  2524		int thps = 0, nr_hpages = 0, result = SCAN_FAIL;
  2525		bool mmap_locked = true;
  2526	
  2527		BUG_ON(vma->vm_start > start);
  2528		BUG_ON(vma->vm_end < end);
  2529	
  2530		*prev = vma;
  2531	
  2532		if (IS_ENABLED(CONFIG_SHMEM) && vma->vm_file)
  2533			return -EINVAL;
  2534	
  2535		hstart = (start + ~HPAGE_PMD_MASK) & HPAGE_PMD_MASK;
  2536		hend = end & HPAGE_PMD_MASK;
  2537		nr_hpages = (hend - hstart) >> HPAGE_PMD_SHIFT;
  2538	
  2539		if (hstart >= hend || !transparent_hugepage_active(vma))
  2540			return -EINVAL;
  2541	
  2542		mmgrab(mm);
  2543		lru_add_drain();
  2544	
  2545		for (addr = hstart; ; ) {
  2546			mmap_assert_locked(mm);
  2547			cond_resched();
  2548			result = SCAN_FAIL;
  2549	
  2550			if (unlikely(khugepaged_test_exit(mm))) {
  2551				result = SCAN_ANY_PROCESS;
  2552				break;
  2553			}
  2554	
  2555			memset(cc.node_load, 0, sizeof(cc.node_load));
  2556			result = khugepaged_scan_pmd(mm, vma, addr, &mmap_locked, &cc);
  2557			if (!mmap_locked)
  2558				*prev = NULL;  /* tell madvise we dropped mmap_lock */
  2559	
  2560			switch (result) {
  2561			/* Whitelisted set of results where continuing OK */
  2562			case SCAN_SUCCEED:
  2563			case SCAN_PMD_MAPPED:
  2564				++thps;
> 2565			case SCAN_PMD_NULL:

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux