Re: [PATCH 2/2] mm: fs: Invalidate BH LRU during page migration

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

 



Hi Minchan,

I love your patch! Yet something to improve:

[auto build test ERROR on block/for-next]
[also build test ERROR on linux/master linus/master v5.12-rc1 next-20210303]
[cannot apply to hnaz-linux-mm/master]
[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/Minchan-Kim/mm-disable-LRU-pagevec-during-the-migration-temporarily/20210303-191809
base:   https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
config: arm-randconfig-r031-20210303 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.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/0day-ci/linux/commit/a1c74fba81d1258e320ef52bc995cb0333e3e083
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Minchan-Kim/mm-disable-LRU-pagevec-during-the-migration-temporarily/20210303-191809
        git checkout a1c74fba81d1258e320ef52bc995cb0333e3e083
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

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/swap.c: In function 'lru_add_drain_cpu':
>> mm/swap.c:671:2: error: implicit declaration of function 'invalidate_bh_lru'; did you mean 'invalidate_bdev'? [-Werror=implicit-function-declaration]
     671 |  invalidate_bh_lru(NULL);
         |  ^~~~~~~~~~~~~~~~~
         |  invalidate_bdev
   mm/swap.c: At top level:
   mm/swap.c:874:6: error: conflicting types for 'lru_add_drain_all'
     874 | void lru_add_drain_all(void)
         |      ^~~~~~~~~~~~~~~~~
   In file included from mm/swap.c:20:
   include/linux/swap.h:348:13: note: previous declaration of 'lru_add_drain_all' was here
     348 | extern void lru_add_drain_all(bool force_all_cpus);
         |             ^~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +671 mm/swap.c

   634	
   635	/*
   636	 * Drain pages out of the cpu's pagevecs.
   637	 * Either "cpu" is the current CPU, and preemption has already been
   638	 * disabled; or "cpu" is being hot-unplugged, and is already dead.
   639	 */
   640	void lru_add_drain_cpu(int cpu)
   641	{
   642		struct pagevec *pvec = &per_cpu(lru_pvecs.lru_add, cpu);
   643	
   644		if (pagevec_count(pvec))
   645			__pagevec_lru_add(pvec);
   646	
   647		pvec = &per_cpu(lru_rotate.pvec, cpu);
   648		/* Disabling interrupts below acts as a compiler barrier. */
   649		if (data_race(pagevec_count(pvec))) {
   650			unsigned long flags;
   651	
   652			/* No harm done if a racing interrupt already did this */
   653			local_lock_irqsave(&lru_rotate.lock, flags);
   654			pagevec_lru_move_fn(pvec, pagevec_move_tail_fn);
   655			local_unlock_irqrestore(&lru_rotate.lock, flags);
   656		}
   657	
   658		pvec = &per_cpu(lru_pvecs.lru_deactivate_file, cpu);
   659		if (pagevec_count(pvec))
   660			pagevec_lru_move_fn(pvec, lru_deactivate_file_fn);
   661	
   662		pvec = &per_cpu(lru_pvecs.lru_deactivate, cpu);
   663		if (pagevec_count(pvec))
   664			pagevec_lru_move_fn(pvec, lru_deactivate_fn);
   665	
   666		pvec = &per_cpu(lru_pvecs.lru_lazyfree, cpu);
   667		if (pagevec_count(pvec))
   668			pagevec_lru_move_fn(pvec, lru_lazyfree_fn);
   669	
   670		activate_page_drain(cpu);
 > 671		invalidate_bh_lru(NULL);
   672	}
   673	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux