On Sat, Jun 22, 2024 at 04:24:43PM +1200, Barry Song wrote: > On Sat, Jun 22, 2024 at 7:09 AM kernel test robot <lkp@xxxxxxxxx> 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@xxxxxxxxx/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@xxxxxxxxx/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? Sorry about the false report, it is a wrong one similar to another report at https://lore.kernel.org/oe-kbuild-all/202406211750.Ks4k82Gi-lkp@xxxxxxxxx/. Kindly ignore this or any one that uses x86_64-randconfig-014-20240202 kconfig, and we will resolve the bot bug asap. > > > > > 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@xxxxxxxxx> > > | Closes: https://lore.kernel.org/oe-kbuild-all/202406220112.qjyQbasK-lkp@xxxxxxxxx/ > > > > 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 >