[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1c710863-ed2e-88ec-2ea9-401c56ecc630@linux.alibaba.com>
Date: Mon, 16 Mar 2020 20:24:51 -0700
From: Yang Shi <yang.shi@...ux.alibaba.com>
To: kbuild test robot <lkp@...el.com>
Cc: kbuild-all@...ts.01.org, shakeelb@...gle.com, vbabka@...e.cz,
willy@...radead.org, akpm@...ux-foundation.org, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [v2 PATCH 1/2] mm: swap: make page_evictable() inline
On 3/16/20 8:00 PM, kbuild test robot wrote:
> Hi Yang,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on mmotm/master]
> [also build test ERROR on linus/master v5.6-rc6 next-20200316]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system. BTW, we also suggest to use '--base' option to specify the
> base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
>
> url: https://github.com/0day-ci/linux/commits/Yang-Shi/mm-swap-make-page_evictable-inline/20200317-094836
> base: git://git.cmpxchg.org/linux-mmotm.git master
> config: i386-tinyconfig (attached as .config)
> compiler: gcc-7 (Debian 7.5.0-5) 7.5.0
> reproduce:
> # save the attached .config to linux build tree
> make ARCH=i386
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@...el.com>
>
> All errors (new ones prefixed by >>):
>
> In file included from include/linux/suspend.h:5:0,
> from arch/x86/kernel/asm-offsets.c:13:
> include/linux/swap.h: In function 'page_evictable':
>>> include/linux/swap.h:395:9: error: implicit declaration of function 'mapping_unevictable'; did you mean 'mapping_deny_writable'? [-Werror=implicit-function-declaration]
It looks pagemap.h need to be included. The below patch should be able
to fix the build error:
diff --git a/include/linux/swap.h b/include/linux/swap.h
index d296c70..e8b8bbe 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -12,6 +12,7 @@
#include <linux/fs.h>
#include <linux/atomic.h>
#include <linux/page-flags.h>
+#include <linux/pagemap.h>
#include <asm/page.h>
struct notifier_block;
> ret = !mapping_unevictable(page_mapping(page)) && !PageMlocked(page);
> ^~~~~~~~~~~~~~~~~~~
> mapping_deny_writable
> cc1: some warnings being treated as errors
> make[2]: *** [scripts/Makefile.build:99: arch/x86/kernel/asm-offsets.s] Error 1
> make[2]: Target '__build' not remade because of errors.
> make[1]: *** [Makefile:1139: prepare0] Error 2
> make[1]: Target 'prepare' not remade because of errors.
> make: *** [Makefile:179: sub-make] Error 2
> 11 real 4 user 5 sys 89.51% cpu make prepare
>
> vim +395 include/linux/swap.h
>
> 376
> 377 /**
> 378 * page_evictable - test whether a page is evictable
> 379 * @page: the page to test
> 380 *
> 381 * Test whether page is evictable--i.e., should be placed on active/inactive
> 382 * lists vs unevictable list.
> 383 *
> 384 * Reasons page might not be evictable:
> 385 * (1) page's mapping marked unevictable
> 386 * (2) page is part of an mlocked VMA
> 387 *
> 388 */
> 389 static inline bool page_evictable(struct page *page)
> 390 {
> 391 bool ret;
> 392
> 393 /* Prevent address_space of inode and swap cache from being freed */
> 394 rcu_read_lock();
> > 395 ret = !mapping_unevictable(page_mapping(page)) && !PageMlocked(page);
> 396 rcu_read_unlock();
> 397 return ret;
> 398 }
> 399
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Powered by blists - more mailing lists