Hi Muhammad, Thank you for the patch! Yet something to improve: [auto build test ERROR on next-20221103] [also build test ERROR on v6.1-rc3] [cannot apply to shuah-kselftest/next linus/master v6.1-rc3 v6.1-rc2 v6.1-rc1] [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/Implement-IOCTL-to-get-and-or-the-clear-info-about-PTEs/20221103-181024 patch link: https://lore.kernel.org/r/20221103100736.2356351-3-usama.anjum%40collabora.com patch subject: [PATCH v4 2/3] fs/proc/task_mmu: Implement IOCTL to get and/or the clear info about PTEs config: s390-allyesconfig compiler: s390-linux-gcc (GCC) 12.1.0 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/ece21cda808bfbd0715c4a8bf691531d31569e09 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Muhammad-Usama-Anjum/Implement-IOCTL-to-get-and-or-the-clear-info-about-PTEs/20221103-181024 git checkout ece21cda808bfbd0715c4a8bf691531d31569e09 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): fs/proc/task_mmu.c: In function 'pagemap_scan_pmd_entry': >> fs/proc/task_mmu.c:1897:17: error: implicit declaration of function 'flush_tlb_mm_range'; did you mean 'flush_tlb_range'? [-Werror=implicit-function-declaration] 1897 | flush_tlb_mm_range(vma->vm_mm, start, end, PAGE_SHIFT, false); | ^~~~~~~~~~~~~~~~~~ | flush_tlb_range cc1: some warnings being treated as errors vim +1897 fs/proc/task_mmu.c 1835 1836 static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long addr, 1837 unsigned long end, struct mm_walk *walk) 1838 { 1839 struct pagemap_scan_private *p = walk->private; 1840 struct vm_area_struct *vma = walk->vma; 1841 unsigned long start = addr; 1842 int dirty, ret = 0; 1843 spinlock_t *ptl; 1844 pte_t *pte; 1845 bool dirty_vma = (p->flags & PAGEMAP_NO_REUSED_REGIONS) ? 1846 (false) : (vma->vm_flags & VM_SOFTDIRTY); 1847 1848 if ((walk->vma->vm_end < addr) || (p->max_pages && p->found_pages == p->max_pages)) 1849 return 0; 1850 1851 end = min(end, walk->vma->vm_end); 1852 1853 ptl = pmd_trans_huge_lock(pmd, vma); 1854 if (ptl) { 1855 if (dirty_vma || check_soft_dirty_pmd(vma, addr, pmd, false)) { 1856 /* 1857 * Break huge page into small pages if operation needs to be performed is 1858 * on a portion of the huge page or the return buffer cannot store complete 1859 * data. 1860 */ 1861 if ((IS_CLEAR_OP(p->flags) && (end - addr < HPAGE_SIZE)) || 1862 (IS_GET_OP(p->vec) && p->max_pages && 1863 (p->found_pages + HPAGE_SIZE/PAGE_SIZE > p->max_pages))) { 1864 spin_unlock(ptl); 1865 split_huge_pmd(vma, pmd, addr); 1866 goto process_smaller_pages; 1867 } else { 1868 dirty = check_soft_dirty_pmd(vma, addr, pmd, IS_CLEAR_OP(p->flags)); 1869 if (IS_GET_OP(p->vec)) 1870 add_to_out(dirty_vma || dirty, vma->vm_file, 1871 pmd_present(*pmd), is_swap_pmd(*pmd), p, 1872 addr, (end - addr)/PAGE_SIZE); 1873 } 1874 } 1875 spin_unlock(ptl); 1876 return 0; 1877 } 1878 1879 process_smaller_pages: 1880 if (pmd_trans_unstable(pmd)) 1881 return 0; 1882 1883 pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); 1884 for (; addr < end && !ret; pte++, addr += PAGE_SIZE) { 1885 dirty = check_soft_dirty(vma, addr, pte, IS_CLEAR_OP(p->flags)); 1886 if (IS_GET_OP(p->vec)) { 1887 ret = add_to_out(dirty_vma || dirty, vma->vm_file, pte_present(*pte), 1888 is_swap_pte(*pte), p, addr, 1); 1889 if (p->max_pages && (p->found_pages == p->max_pages)) 1890 break; 1891 } 1892 } 1893 pte_unmap_unlock(pte - 1, ptl); 1894 cond_resched(); 1895 1896 if (IS_CLEAR_OP(p->flags)) > 1897 flush_tlb_mm_range(vma->vm_mm, start, end, PAGE_SHIFT, false); 1898 1899 return 0; 1900 } 1901 -- 0-DAY CI Kernel Test Service https://01.org/lkp