From: Barry Song <21cnbao@gmail.com>
To: kernel test robot <lkp@intel.com>
Cc: Chuanhua Han <hanchuanhua@oppo.com>,
oe-kbuild-all@lists.linux.dev,
Linux Memory Management List <linux-mm@kvack.org>,
Andrew Morton <akpm@linux-foundation.org>,
Barry Song <v-songbaohua@oppo.com>,
Ryan Roberts <ryan.roberts@arm.com>,
"Huang, Ying" <ying.huang@intel.com>
Subject: Re: [linux-next:master 6448/7397] mm/swapfile.c:1388:6: error: redefinition of 'swap_free_nr'
Date: Sat, 22 Jun 2024 16:24:43 +1200 [thread overview]
Message-ID: <CAGsJ_4xn7bw797EBtNvATgYbu+WiDpqgPY69JY6MxRF8db0jtw@mail.gmail.com> (raw)
In-Reply-To: <202406220112.qjyQbasK-lkp@intel.com>
On Sat, Jun 22, 2024 at 7:09 AM kernel test robot <lkp@intel.com> wrote:
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: b992b79ca8bc336fa8e2c80990b5af80ed8f36fd
> commit: b858a8a49e72678a7e0ac90b8135d746b31d7586 [6448/7397] mm: swap: introduce swap_free_nr() for batched swap_free()
> config: x86_64-randconfig-014-20240202 (https://download.01.org/0day-ci/archive/20240622/202406220112.qjyQbasK-lkp@intel.com/config)
> compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240622/202406220112.qjyQbasK-lkp@intel.com/reproduce)
I'm not sure why this is happening. I've downloaded the config and
kernel code and tried to
reproduce the issue using the same GCC version, but everything seems fine.
Is LKP experiencing issues today?
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202406220112.qjyQbasK-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> In file included from mm/swapfile.c:17:
> include/linux/swap.h:519:49: error: expected identifier or '(' before numeric constant
> 519 | #define total_swap_pages 0L
> | ^~
> mm/swapfile.c:67:6: note: in expansion of macro 'total_swap_pages'
> 67 | long total_swap_pages;
> | ^~~~~~~~~~~~~~~~
> mm/swapfile.c:236:10: warning: no previous prototype for 'swap_folio_sector' [-Wmissing-prototypes]
> 236 | sector_t swap_folio_sector(struct folio *folio)
> | ^~~~~~~~~~~~~~~~~
> mm/swapfile.c: In function 'set_cluster_next':
> mm/swapfile.c:797:22: error: 'SWAP_ADDRESS_SPACE_SHIFT' undeclared (first use in this function)
> 797 | if ((prev >> SWAP_ADDRESS_SPACE_SHIFT) !=
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> mm/swapfile.c:797:22: note: each undeclared identifier is reported only once for each function it appears in
> In file included from include/vdso/const.h:5,
> from include/linux/const.h:4,
> from include/linux/list.h:9,
> from include/linux/wait.h:7,
> from include/linux/wait_bit.h:8,
> from include/linux/fs.h:6,
> from include/linux/highmem.h:5,
> from include/linux/bvec.h:10,
> from include/linux/blk_types.h:10,
> from include/linux/blkdev.h:9,
> from mm/swapfile.c:9:
> mm/swapfile.c:803:41: error: 'SWAP_ADDRESS_SPACE_PAGES' undeclared (first use in this function)
> 803 | next = ALIGN_DOWN(next, SWAP_ADDRESS_SPACE_PAGES);
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> include/uapi/linux/const.h:32:44: note: in definition of macro '__ALIGN_KERNEL_MASK'
> 32 | #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
> | ^
> include/linux/align.h:9:33: note: in expansion of macro '__ALIGN_KERNEL'
> 9 | #define ALIGN_DOWN(x, a) __ALIGN_KERNEL((x) - ((a) - 1), (a))
> | ^~~~~~~~~~~~~~
> mm/swapfile.c:803:24: note: in expansion of macro 'ALIGN_DOWN'
> 803 | next = ALIGN_DOWN(next, SWAP_ADDRESS_SPACE_PAGES);
> | ^~~~~~~~~~
> mm/swapfile.c: At top level:
> mm/swapfile.c:1071:5: warning: no previous prototype for 'get_swap_pages' [-Wmissing-prototypes]
> 1071 | int get_swap_pages(int n_goal, swp_entry_t swp_entries[], int entry_order)
> | ^~~~~~~~~~~~~~
> mm/swapfile.c:1278:26: error: redefinition of 'get_swap_device'
> 1278 | struct swap_info_struct *get_swap_device(swp_entry_t entry)
> | ^~~~~~~~~~~~~~~
> include/linux/swap.h:509:40: note: previous definition of 'get_swap_device' with type 'struct swap_info_struct *(swp_entry_t)'
> 509 | static inline struct swap_info_struct *get_swap_device(swp_entry_t entry)
> | ^~~~~~~~~~~~~~~
> mm/swapfile.c:1350:6: error: redefinition of 'swap_free'
> 1350 | void swap_free(swp_entry_t entry)
> | ^~~~~~~~~
> include/linux/swap.h:559:20: note: previous definition of 'swap_free' with type 'void(swp_entry_t)'
> 559 | static inline void swap_free(swp_entry_t swp)
> | ^~~~~~~~~
> >> mm/swapfile.c:1388:6: error: redefinition of 'swap_free_nr'
> 1388 | void swap_free_nr(swp_entry_t entry, int nr_pages)
> | ^~~~~~~~~~~~
> include/linux/swap.h:563:20: note: previous definition of 'swap_free_nr' with type 'void(swp_entry_t, int)'
> 563 | static inline void swap_free_nr(swp_entry_t entry, int nr_pages)
> | ^~~~~~~~~~~~
> mm/swapfile.c:1409:6: error: redefinition of 'put_swap_folio'
> 1409 | void put_swap_folio(struct folio *folio, swp_entry_t entry)
> | ^~~~~~~~~~~~~~
> include/linux/swap.h:567:20: note: previous definition of 'put_swap_folio' with type 'void(struct folio *, swp_entry_t)'
> 567 | static inline void put_swap_folio(struct folio *folio, swp_entry_t swp)
> | ^~~~~~~~~~~~~~
> mm/swapfile.c:1461:6: warning: no previous prototype for 'swapcache_free_entries' [-Wmissing-prototypes]
> 1461 | void swapcache_free_entries(swp_entry_t *entries, int n)
> | ^~~~~~~~~~~~~~~~~~~~~~
> mm/swapfile.c:1489:5: error: redefinition of '__swap_count'
> 1489 | int __swap_count(swp_entry_t entry)
> | ^~~~~~~~~~~~
> include/linux/swap.h:571:19: note: previous definition of '__swap_count' with type 'int(swp_entry_t)'
> 571 | static inline int __swap_count(swp_entry_t entry)
> | ^~~~~~~~~~~~
> mm/swapfile.c:1502:5: error: redefinition of 'swap_swapcount'
> 1502 | int swap_swapcount(struct swap_info_struct *si, swp_entry_t entry)
> | ^~~~~~~~~~~~~~
> include/linux/swap.h:576:19: note: previous definition of 'swap_swapcount' with type 'int(struct swap_info_struct *, swp_entry_t)'
> 576 | static inline int swap_swapcount(struct swap_info_struct *si, swp_entry_t entry)
> | ^~~~~~~~~~~~~~
> mm/swapfile.c:1518:5: error: redefinition of 'swp_swapcount'
> 1518 | int swp_swapcount(swp_entry_t entry)
> | ^~~~~~~~~~~~~
> include/linux/swap.h:581:19: note: previous definition of 'swp_swapcount' with type 'int(swp_entry_t)'
> 581 | static inline int swp_swapcount(swp_entry_t entry)
> | ^~~~~~~~~~~~~
> mm/swapfile.c:1611:6: error: redefinition of 'folio_free_swap'
> 1611 | bool folio_free_swap(struct folio *folio)
> | ^~~~~~~~~~~~~~~
> include/linux/swap.h:593:20: note: previous definition of 'folio_free_swap' with type 'bool(struct folio *)' {aka '_Bool(struct folio *)'}
> 593 | static inline bool folio_free_swap(struct folio *folio)
> | ^~~~~~~~~~~~~~~
> mm/swapfile.c:1655:6: error: redefinition of 'free_swap_and_cache_nr'
> 1655 | void free_swap_and_cache_nr(swp_entry_t entry, int nr)
> | ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/swap.h:532:20: note: previous definition of 'free_swap_and_cache_nr' with type 'void(swp_entry_t, int)'
> 532 | static inline void free_swap_and_cache_nr(swp_entry_t entry, int nr)
> | ^~~~~~~~~~~~~~~~~~~~~~
> mm/swapfile.c:2303:1: error: redefinition of 'add_swap_extent'
> 2303 | add_swap_extent(struct swap_info_struct *sis, unsigned long start_page,
> | ^~~~~~~~~~~~~~~
> include/linux/swap.h:598:19: note: previous definition of 'add_swap_extent' with type 'int(struct swap_info_struct *, long unsigned int, long unsigned int, sector_t)' {aka 'int(struct swap_info_struct *, long unsigned int, long unsigned int, long long unsigned int)'}
> 598 | static inline int add_swap_extent(struct swap_info_struct *sis,
> | ^~~~~~~~~~~~~~~
> mm/swapfile.c: In function 'setup_swap_extents':
> mm/swapfile.c:2389:21: error: implicit declaration of function 'sio_pool_init'; did you mean 'mempool_init'? [-Werror=implicit-function-declaration]
> 2389 | sio_pool_init() != 0) {
> | ^~~~~~~~~~~~~
> | mempool_init
> mm/swapfile.c:2396:16: error: implicit declaration of function 'generic_swapfile_activate' [-Werror=implicit-function-declaration]
> 2396 | return generic_swapfile_activate(sis, swap_file, span);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> mm/swapfile.c: In function '_enable_swap_info':
> mm/swapfile.c:2444:26: error: lvalue required as left operand of assignment
> 2444 | total_swap_pages += p->pages;
> | ^~
> mm/swapfile.c: At top level:
> mm/swapfile.c:2499:6: warning: no previous prototype for 'has_usable_swap' [-Wmissing-prototypes]
> 2499 | bool has_usable_swap(void)
> | ^~~~~~~~~~~~~~~
> mm/swapfile.c: In function '__do_sys_swapoff':
> mm/swapfile.c:2574:26: error: lvalue required as left operand of assignment
> 2574 | total_swap_pages -= p->pages;
> | ^~
> mm/swapfile.c:2650:9: error: implicit declaration of function 'exit_swap_address_space'; did you mean 'swap_address_space'? [-Werror=implicit-function-declaration]
> 2650 | exit_swap_address_space(p->type);
> | ^~~~~~~~~~~~~~~~~~~~~~~
> | swap_address_space
> In file included from include/linux/export.h:5,
> from include/linux/linkage.h:7,
> from include/linux/fs.h:5:
> mm/swapfile.c: In function 'setup_swap_map_and_extents':
> mm/swapfile.c:2995:22: error: 'SWAP_ADDRESS_SPACE_PAGES' undeclared (first use in this function)
> 2995 | DIV_ROUND_UP(SWAP_ADDRESS_SPACE_PAGES, SWAPFILE_CLUSTER)
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/compiler.h:284:55: note: in definition of macro '__is_constexpr'
> 284 | (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
> | ^
> include/linux/minmax.h:169:33: note: in expansion of macro '__careful_cmp'
> 169 | #define max_t(type, x, y) __careful_cmp(max, (type)(x), (type)(y))
> | ^~~~~~~~~~~~~
> mm/swapfile.c:2997:9: note: in expansion of macro 'max_t'
> 2997 | max_t(unsigned int, SWAP_CLUSTER_INFO_COLS, SWAP_CLUSTER_SPACE_COLS)
> | ^~~~~
> include/linux/math.h:37:22: note: in expansion of macro '__KERNEL_DIV_ROUND_UP'
> 37 | #define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP
> | ^~~~~~~~~~~~~~~~~~~~~
> mm/swapfile.c:2997:53: note: in expansion of macro 'SWAP_CLUSTER_SPACE_COLS'
> 2997 | max_t(unsigned int, SWAP_CLUSTER_INFO_COLS, SWAP_CLUSTER_SPACE_COLS)
> | ^~~~~~~~~~~~~~~~~~~~~~~
> mm/swapfile.c:3010:66: note: in expansion of macro 'SWAP_CLUSTER_COLS'
> 3010 | unsigned long col = p->cluster_next / SWAPFILE_CLUSTER % SWAP_CLUSTER_COLS;
> | ^~~~~~~~~~~~~~~~~
> In file included from include/linux/container_of.h:5,
>
>
> vim +/swap_free_nr +1388 mm/swapfile.c
>
> 1387
> > 1388 void swap_free_nr(swp_entry_t entry, int nr_pages)
> 1389 {
> 1390 int nr;
> 1391 struct swap_info_struct *sis;
> 1392 unsigned long offset = swp_offset(entry);
> 1393
> 1394 sis = _swap_info_get(entry);
> 1395 if (!sis)
> 1396 return;
> 1397
> 1398 while (nr_pages) {
> 1399 nr = min_t(int, nr_pages, SWAPFILE_CLUSTER - offset % SWAPFILE_CLUSTER);
> 1400 cluster_swap_free_nr(sis, offset, nr);
> 1401 offset += nr;
> 1402 nr_pages -= nr;
> 1403 }
> 1404 }
> 1405
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
>
Thanks
Barry
next prev parent reply other threads:[~2024-06-22 4:24 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-21 17:59 kernel test robot
2024-06-22 4:24 ` Barry Song [this message]
2024-06-22 5:53 ` Philip Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAGsJ_4xn7bw797EBtNvATgYbu+WiDpqgPY69JY6MxRF8db0jtw@mail.gmail.com \
--to=21cnbao@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=hanchuanhua@oppo.com \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=ryan.roberts@arm.com \
--cc=v-songbaohua@oppo.com \
--cc=ying.huang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox