Hi Yu, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v5.14-rc3] [cannot apply to hnaz-linux-mm/master linux/master next-20210730] [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/0day-ci/linux/commits/Yu-Zhao/mm-optimize-thp-for-reclaim-and-migration/20210731-144129 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git c7d102232649226a69dddd58a4942cf13cff4f7c config: i386-randconfig-a003-20210730 (attached as .config) compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/e4e76c4915b364558aacae2cf320a43306a20fa1 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Yu-Zhao/mm-optimize-thp-for-reclaim-and-migration/20210731-144129 git checkout e4e76c4915b364558aacae2cf320a43306a20fa1 # save the attached .config to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): mm/migrate.c: In function 'try_to_unmap_clean': >> mm/migrate.c:199:17: error: 'THP_SPLIT_UNMAP' undeclared (first use in this function) 199 | count_vm_event(THP_SPLIT_UNMAP); | ^~~~~~~~~~~~~~~ mm/migrate.c:199:17: note: each undeclared identifier is reported only once for each function it appears in vim +/THP_SPLIT_UNMAP +199 mm/migrate.c 170 171 static bool try_to_unmap_clean(struct page_vma_mapped_walk *pvmw, struct page *page) 172 { 173 void *addr; 174 bool dirty; 175 176 VM_BUG_ON_PAGE(PageLRU(page), page); 177 VM_BUG_ON_PAGE(PageCompound(page), page); 178 VM_BUG_ON_PAGE(!PageAnon(page), page); 179 VM_BUG_ON_PAGE(!PageLocked(page), page); 180 VM_BUG_ON_PAGE(pte_present(*pvmw->pte), page); 181 182 if (PageMlocked(page) || (pvmw->vma->vm_flags & VM_LOCKED)) 183 return false; 184 185 /* 186 * The pmd entry mapping the old thp was flushed and the pte mapping 187 * this subpage has been non present. Therefore, this subpage is 188 * inaccessible. We don't need to remap it if it contains only zeros. 189 */ 190 addr = kmap_atomic(page); 191 dirty = !!memchr_inv(addr, 0, PAGE_SIZE); 192 kunmap_atomic(addr); 193 194 if (dirty) 195 return false; 196 197 pte_clear_not_present_full(pvmw->vma->vm_mm, pvmw->address, pvmw->pte, false); 198 dec_mm_counter(pvmw->vma->vm_mm, mm_counter(page)); > 199 count_vm_event(THP_SPLIT_UNMAP); 200 201 return true; 202 } 203 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org