Hi Minchan, I love your patch! Yet something to improve: [auto build test ERROR on hnaz-mm/master] url: https://github.com/intel-lab-lkp/linux/commits/Minchan-Kim/mm-don-t-be-stuck-to-rmap-lock-on-reclaim-path/20220504-010625 base: https://github.com/hnaz/linux-mm master config: x86_64-randconfig-a016 (https://download.01.org/0day-ci/archive/20220504/202205041158.b7On1pwy-lkp@xxxxxxxxx/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 363b3a645a1e30011cc8da624f13dac5fd915628) 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/0e190ce022ef259d63eb2cf50110b292ba17c79c git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Minchan-Kim/mm-don-t-be-stuck-to-rmap-lock-on-reclaim-path/20220504-010625 git checkout 0e190ce022ef259d63eb2cf50110b292ba17c79c # 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 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): >> mm/page_idle.c:106:19: error: passing 'const struct rmap_walk_control *' to parameter of type 'struct rmap_walk_control *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] rmap_walk(folio, &rwc); ^~~~ include/linux/rmap.h:403:63: note: passing argument to parameter 'rwc' here void rmap_walk(struct folio *folio, struct rmap_walk_control *rwc); ^ 1 error generated. vim +106 mm/page_idle.c 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 85 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 86 static void page_idle_clear_pte_refs(struct page *page) 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 87 { 4aed23a2f8aaaa Matthew Wilcox (Oracle 2022-01-29 88) struct folio *folio = page_folio(page); 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 89 /* 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 90 * Since rwc.arg is unused, rwc is effectively immutable, so we 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 91 * can make it static const to save some cycles and stack. 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 92 */ 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 93 static const struct rmap_walk_control rwc = { 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 94 .rmap_one = page_idle_clear_pte_refs_one, 2f031c6f042cb8 Matthew Wilcox (Oracle 2022-01-29 95) .anon_lock = folio_lock_anon_vma_read, 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 96 }; 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 97 bool need_lock; 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 98 4aed23a2f8aaaa Matthew Wilcox (Oracle 2022-01-29 99) if (!folio_mapped(folio) || !folio_raw_mapping(folio)) 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 100 return; 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 101 4aed23a2f8aaaa Matthew Wilcox (Oracle 2022-01-29 102) need_lock = !folio_test_anon(folio) || folio_test_ksm(folio); 4aed23a2f8aaaa Matthew Wilcox (Oracle 2022-01-29 103) if (need_lock && !folio_trylock(folio)) 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 104 return; 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 105 84fbbe21894bb9 Matthew Wilcox (Oracle 2022-01-29 @106) rmap_walk(folio, &rwc); 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 107 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 108 if (need_lock) 4aed23a2f8aaaa Matthew Wilcox (Oracle 2022-01-29 109) folio_unlock(folio); 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 110 } 33c3fc71c8cfa3 Vladimir Davydov 2015-09-09 111 -- 0-DAY CI Kernel Test Service https://01.org/lkp