Re: [PATCH v7 13/17] mm/debug: print vm_refcnt state when dumping the vma

Suren Baghdasaryan
2024-12-26T19:54:20Z

On Thu, Dec 26, 2024 at 11:51 AM Suren Baghdasaryan <surenb@google.com> wrote:
>
> On Thu, Dec 26, 2024 at 11:41 AM kernel test robot <lkp@intel.com> wrote:
> >
> > Hi Suren,
> >
> > kernel test robot noticed the following build errors:
> >
> > [auto build test ERROR on 431614f1580a03c1a653340c55ea76bd12a9403f]
> >
> > url: https://github.com/intel-lab-lkp/linux/commits/Suren-Baghdasaryan/mm-introduce-vma_start_read_locked-_nested-helpers/20241227-010925
> > base: 431614f1580a03c1a653340c55ea76bd12a9403f
> > patch link: https://lore.kernel.org/r/20241226170710.1159679-14-surenb%40google.com
> > patch subject: [PATCH v7 13/17] mm/debug: print vm_refcnt state when dumping the vma
> > config: hexagon-randconfig-002-20241227 (https://download.01.org/0day-ci/archive/20241227/202412270328.HiJX1mRt-lkp@intel.com/config)
> > compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241227/202412270328.HiJX1mRt-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/202412270328.HiJX1mRt-lkp@intel.com/
> >
> > All errors (new ones prefixed by >>):
> >
> > >> mm/debug.c:189:54: error: no member named 'vm_refcnt' in 'struct vm_area_struct'
>
> Ugh, ok. On architectures with ARCH_SUPPORTS_PER_VMA_LOCK=n this will
> happen. Preparing a fix.

This error actually also requires CONFIG_DEBUG_VM=y.

>
> > 189 | vma->vm_flags, &vma->vm_flags, refcount_read(&vma->vm_refcnt));
> > | ~~~ ^
> > include/linux/printk.h:514:35: note: expanded from macro 'pr_emerg'
> > 514 | printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
> > | ^~~~~~~~~~~
> > include/linux/printk.h:501:60: note: expanded from macro 'printk'
> > 501 | #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
> > | ^~~~~~~~~~~
> > include/linux/printk.h:473:19: note: expanded from macro 'printk_index_wrap'
> > 473 | _p_func(_fmt, ##__VA_ARGS__); \
> > | ^~~~~~~~~~~
> > 1 error generated.
> >
> >
> > vim +189 mm/debug.c
> >
> > 178
> > 179 void dump_vma(const struct vm_area_struct *vma)
> > 180 {
> > 181 pr_emerg("vma %px start %px end %px mm %px\n"
> > 182 "prot %lx anon_vma %px vm_ops %px\n"
> > 183 "pgoff %lx file %px private_data %px\n"
> > 184 "flags: %#lx(%pGv) refcnt %x\n",
> > 185 vma, (void *)vma->vm_start, (void *)vma->vm_end, vma->vm_mm,
> > 186 (unsigned long)pgprot_val(vma->vm_page_prot),
> > 187 vma->anon_vma, vma->vm_ops, vma->vm_pgoff,
> > 188 vma->vm_file, vma->vm_private_data,
> > > 189 vma->vm_flags, &vma->vm_flags, refcount_read(&vma->vm_refcnt));
> > 190 }
> > 191 EXPORT_SYMBOL(dump_vma);
> > 192
> >
> > --
> > 0-DAY CI Kernel Test Service
> > https://github.com/intel/lkp-tests/wiki