Re: [v2] fs/proc/task_mmu: Implement IOCTL for efficient page table scanning

From: kernel test robot
Date: Sat Jul 22 2023 - 10:06:45 EST


Hi Michał,

kernel test robot noticed the following build errors:

[auto build test ERROR on akpm-mm/mm-everything]
[also build test ERROR on linus/master v6.5-rc2 next-20230721]
[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/Micha-Miros-aw/fs-proc-task_mmu-Implement-IOCTL-for-efficient-page-table-scanning/20230722-082500
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/ZLshsAj5PbsEAHhP%40qmqm.qmqm.pl
patch subject: [v2] fs/proc/task_mmu: Implement IOCTL for efficient page table scanning
config: x86_64-rhel-8.3 (https://download.01.org/0day-ci/archive/20230722/202307222141.3RAiL0jR-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230722/202307222141.3RAiL0jR-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307222141.3RAiL0jR-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

fs/proc/task_mmu.c: In function 'pagemap_scan_test_walk':
fs/proc/task_mmu.c:1921:13: error: implicit declaration of function 'userfaultfd_wp_async'; did you mean 'userfaultfd_wp'? [-Werror=implicit-function-declaration]
1921 | if (userfaultfd_wp_async(vma) && userfaultfd_wp_use_markers(vma))
| ^~~~~~~~~~~~~~~~~~~~
| userfaultfd_wp
fs/proc/task_mmu.c: In function 'pagemap_scan_thp_entry':
>> fs/proc/task_mmu.c:2047:20: error: 'addr' undeclared (first use in this function)
2047 | if (end != addr + HPAGE_SIZE) {
| ^~~~
fs/proc/task_mmu.c:2047:20: note: each undeclared identifier is reported only once for each function it appears in
cc1: some warnings being treated as errors


vim +/addr +2047 fs/proc/task_mmu.c

2017
2018 static int pagemap_scan_thp_entry(pmd_t *pmd, unsigned long start,
2019 unsigned long end, struct mm_walk *walk)
2020 {
2021 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
2022 struct pagemap_scan_private *p = walk->private;
2023 struct vm_area_struct *vma = walk->vma;
2024 unsigned long categories;
2025 spinlock_t *ptl;
2026 int ret = 0;
2027
2028 ptl = pmd_trans_huge_lock(pmd, vma);
2029 if (!ptl)
2030 return -ENOENT;
2031
2032 categories = p->cur_vma_category | pagemap_thp_category(*pmd);
2033
2034 ret = pagemap_scan_output(categories, p, start, &end);
2035 if (start == end)
2036 goto out_unlock;
2037
2038 if (~p->arg.flags & PM_SCAN_WP_MATCHING)
2039 goto out_unlock;
2040 if (~categories & PAGE_IS_WRITTEN)
2041 goto out_unlock;
2042
2043 /*
2044 * Break huge page into small pages if the WP operation
2045 * need to be performed is on a portion of the huge page.
2046 */
> 2047 if (end != addr + HPAGE_SIZE) {
2048 spin_unlock(ptl);
2049 split_huge_pmd(vma, pmd, start);
2050 pagemap_scan_backout_range(p, start, end);
2051 return -ENOENT;
2052 }
2053
2054 make_uffd_wp_pmd(vma, start, pmd);
2055 flush_tlb_range(vma, start, end);
2056 out_unlock:
2057 spin_unlock(ptl);
2058 return ret;
2059 #else /* !CONFIG_TRANSPARENT_HUGEPAGE */
2060 return -ENOENT;
2061 #endif
2062 }
2063

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