Re: [PATCH v9 2/3] fs/proc/task_mmu: Implement IOCTL to get and/or the clear info about PTEs

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

 



Hi Muhammad,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on shuah-kselftest/fixes]
[also build test ERROR on linus/master v6.2-rc6]
[cannot apply to shuah-kselftest/next]
[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/Muhammad-Usama-Anjum/userfaultfd-Add-UFFD-WP-Async-support/20230131-163537
base:   https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git fixes
patch link:    https://lore.kernel.org/r/20230131083257.3302830-3-usama.anjum%40collabora.com
patch subject: [PATCH v9 2/3] fs/proc/task_mmu: Implement IOCTL to get and/or the clear info about PTEs
config: x86_64-rhel-8.3-rust (https://download.01.org/0day-ci/archive/20230201/202302011447.7lSFpVO5-lkp@xxxxxxxxx/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
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/11677b6b7fda958031115ea40aa219fc32c7dea4
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Muhammad-Usama-Anjum/userfaultfd-Add-UFFD-WP-Async-support/20230131-163537
        git checkout 11677b6b7fda958031115ea40aa219fc32c7dea4
        # 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 olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash fs/

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

All errors (new ones prefixed by >>):

>> fs/proc/task_mmu.c:1907:5: error: implicit declaration of function 'uffd_wp_range' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                                   uffd_wp_range(walk->mm, vma, start, HPAGE_SIZE, true);
                                   ^
   fs/proc/task_mmu.c:1927:3: error: implicit declaration of function 'uffd_wp_range' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                   uffd_wp_range(walk->mm, vma, start, addr - start, true);
                   ^
   2 errors generated.


vim +/uffd_wp_range +1907 fs/proc/task_mmu.c

  1874	
  1875	static inline int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
  1876						 unsigned long end, struct mm_walk *walk)
  1877	{
  1878		struct pagemap_scan_private *p = walk->private;
  1879		struct vm_area_struct *vma = walk->vma;
  1880		unsigned long addr = end;
  1881		spinlock_t *ptl;
  1882		int ret = 0;
  1883		pte_t *pte;
  1884	
  1885	#ifdef CONFIG_TRANSPARENT_HUGEPAGE
  1886		ptl = pmd_trans_huge_lock(pmd, vma);
  1887		if (ptl) {
  1888			bool pmd_wt;
  1889	
  1890			pmd_wt = !is_pmd_uffd_wp(*pmd);
  1891			/*
  1892			 * Break huge page into small pages if operation needs to be performed is
  1893			 * on a portion of the huge page.
  1894			 */
  1895			if (pmd_wt && IS_WP_ENGAGE_OP(p) && (end - start < HPAGE_SIZE)) {
  1896				spin_unlock(ptl);
  1897				split_huge_pmd(vma, pmd, start);
  1898				goto process_smaller_pages;
  1899			}
  1900			if (IS_GET_OP(p))
  1901				ret = pagemap_scan_output(pmd_wt, vma->vm_file, pmd_present(*pmd),
  1902							  is_swap_pmd(*pmd), p, start,
  1903							  (end - start)/PAGE_SIZE);
  1904			spin_unlock(ptl);
  1905			if (!ret) {
  1906				if (pmd_wt && IS_WP_ENGAGE_OP(p))
> 1907					uffd_wp_range(walk->mm, vma, start, HPAGE_SIZE, true);
  1908			}
  1909			return ret;
  1910		}
  1911	process_smaller_pages:
  1912		if (pmd_trans_unstable(pmd))
  1913			return 0;
  1914	#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
  1915	
  1916		pte = pte_offset_map_lock(vma->vm_mm, pmd, start, &ptl);
  1917		if (IS_GET_OP(p)) {
  1918			for (addr = start; addr < end; pte++, addr += PAGE_SIZE) {
  1919				ret = pagemap_scan_output(!is_pte_uffd_wp(*pte), vma->vm_file,
  1920							  pte_present(*pte), is_swap_pte(*pte), p, addr, 1);
  1921				if (ret)
  1922					break;
  1923			}
  1924		}
  1925		pte_unmap_unlock(pte - 1, ptl);
  1926		if ((!ret || ret == -ENOSPC) && IS_WP_ENGAGE_OP(p) && (addr - start))
  1927			uffd_wp_range(walk->mm, vma, start, addr - start, true);
  1928	
  1929		cond_resched();
  1930		return ret;
  1931	}
  1932	

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



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux