tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: e32cde8d2bd7d251a8f9b434143977ddf13dcec6 commit: e31c38e037621c445bb4393fd77e0a76e6e0899a zswap: implement a second chance algorithm for dynamic zswap shrinker date: 4 weeks ago config: x86_64-randconfig-r133-20240215 (https://download.01.org/0day-ci/archive/20241002/202410021530.DnNbPqfN-lkp@xxxxxxxxx/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241002/202410021530.DnNbPqfN-lkp@xxxxxxxxx/reproduce) 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/202410021530.DnNbPqfN-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): mm/zswap.c:97:33: error: 'CONFIG_ZSWAP_COMPRESSOR_DEFAULT' undeclared here (not in a function) 97 | static char *zswap_compressor = CONFIG_ZSWAP_COMPRESSOR_DEFAULT; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/zswap.c:109:33: error: 'CONFIG_ZSWAP_ZPOOL_DEFAULT' undeclared here (not in a function); did you mean 'CONFIG_NR_CPUS_DEFAULT'? 109 | static char *zswap_zpool_type = CONFIG_ZSWAP_ZPOOL_DEFAULT; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | CONFIG_NR_CPUS_DEFAULT mm/zswap.c:132:6: error: redefinition of 'zswap_is_enabled' 132 | bool zswap_is_enabled(void) | ^~~~~~~~~~~~~~~~ In file included from include/linux/mmzone.h:25, from include/linux/gfp.h:7, from include/linux/umh.h:4, from include/linux/kmod.h:9, from include/linux/module.h:17, from mm/zswap.c:16: include/linux/zswap.h:62:20: note: previous definition of 'zswap_is_enabled' with type 'bool(void)' {aka '_Bool(void)'} 62 | static inline bool zswap_is_enabled(void) | ^~~~~~~~~~~~~~~~ mm/zswap.c:137:6: error: redefinition of 'zswap_never_enabled' 137 | bool zswap_never_enabled(void) | ^~~~~~~~~~~~~~~~~~~ include/linux/zswap.h:67:20: note: previous definition of 'zswap_never_enabled' with type 'bool(void)' {aka '_Bool(void)'} 67 | static inline bool zswap_never_enabled(void) | ^~~~~~~~~~~~~~~~~~~ mm/zswap.c: In function 'swap_zswap_tree': mm/zswap.c:244:20: error: 'SWAP_ADDRESS_SPACE_SHIFT' undeclared (first use in this function) 244 | >> SWAP_ADDRESS_SPACE_SHIFT]; | ^~~~~~~~~~~~~~~~~~~~~~~~ mm/zswap.c:244:20: note: each undeclared identifier is reported only once for each function it appears in mm/zswap.c: At top level: mm/zswap.c:489:15: warning: no previous prototype for 'zswap_total_pages' [-Wmissing-prototypes] 489 | unsigned long zswap_total_pages(void) | ^~~~~~~~~~~~~~~~~ mm/zswap.c:742:6: error: redefinition of 'zswap_lruvec_state_init' 742 | void zswap_lruvec_state_init(struct lruvec *lruvec) | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/zswap.h:59:20: note: previous definition of 'zswap_lruvec_state_init' with type 'void(struct lruvec *)' 59 | static inline void zswap_lruvec_state_init(struct lruvec *lruvec) {} | ^~~~~~~~~~~~~~~~~~~~~~~ mm/zswap.c: In function 'zswap_lruvec_state_init': >> mm/zswap.c:744:52: error: 'struct zswap_lruvec_state' has no member named 'nr_disk_swapins' 744 | atomic_long_set(&lruvec->zswap_lruvec_state.nr_disk_swapins, 0); | ^ mm/zswap.c: At top level: mm/zswap.c:747:6: error: redefinition of 'zswap_folio_swapin' 747 | void zswap_folio_swapin(struct folio *folio) | ^~~~~~~~~~~~~~~~~~ include/linux/zswap.h:60:20: note: previous definition of 'zswap_folio_swapin' with type 'void(struct folio *)' 60 | static inline void zswap_folio_swapin(struct folio *folio) {} | ^~~~~~~~~~~~~~~~~~ mm/zswap.c: In function 'zswap_folio_swapin': mm/zswap.c:753:60: error: 'struct zswap_lruvec_state' has no member named 'nr_disk_swapins' 753 | atomic_long_inc(&lruvec->zswap_lruvec_state.nr_disk_swapins); | ^ mm/zswap.c: At top level: mm/zswap.c:767:6: error: redefinition of 'zswap_memcg_offline_cleanup' 767 | void zswap_memcg_offline_cleanup(struct mem_cgroup *memcg) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/zswap.h:58:20: note: previous definition of 'zswap_memcg_offline_cleanup' with type 'void(struct mem_cgroup *)' 58 | static inline void zswap_memcg_offline_cleanup(struct mem_cgroup *memcg) {} | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/zswap.c: In function 'zswap_writeback_entry': mm/zswap.c:1029:17: error: implicit declaration of function '__read_swap_cache_async' [-Werror=implicit-function-declaration] 1029 | folio = __read_swap_cache_async(swpentry, GFP_KERNEL, mpol, | ^~~~~~~~~~~~~~~~~~~~~~~ mm/zswap.c:1029:15: warning: assignment to 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1029 | folio = __read_swap_cache_async(swpentry, GFP_KERNEL, mpol, | ^ mm/zswap.c:1065:24: error: 'ZSWPWB' undeclared (first use in this function) 1065 | count_vm_event(ZSWPWB); | ^~~~~~ mm/zswap.c:1078:9: error: implicit declaration of function '__swap_writepage'; did you mean 'swap_writepage'? [-Werror=implicit-function-declaration] 1078 | __swap_writepage(folio, &wbc); | ^~~~~~~~~~~~~~~~ | swap_writepage mm/zswap.c: In function 'zswap_shrinker_count': mm/zswap.c:1218:44: error: 'struct zswap_lruvec_state' has no member named 'nr_disk_swapins' 1218 | &lruvec->zswap_lruvec_state.nr_disk_swapins; | ^ mm/zswap.c: At top level: mm/zswap.c:1458:6: error: redefinition of 'zswap_store' 1458 | bool zswap_store(struct folio *folio) | ^~~~~~~~~~~ include/linux/zswap.h:42:20: note: previous definition of 'zswap_store' with type 'bool(struct folio *)' {aka '_Bool(struct folio *)'} 42 | static inline bool zswap_store(struct folio *folio) | ^~~~~~~~~~~ mm/zswap.c: In function 'zswap_store': mm/zswap.c:1547:42: error: 'ZSWPOUT' undeclared (first use in this function); did you mean 'PSWPOUT'? 1547 | count_objcg_event(objcg, ZSWPOUT); | ^~~~~~~ | PSWPOUT mm/zswap.c: At top level: mm/zswap.c:1597:6: error: redefinition of 'zswap_load' 1597 | bool zswap_load(struct folio *folio) | ^~~~~~~~~~ include/linux/zswap.h:47:20: note: previous definition of 'zswap_load' with type 'bool(struct folio *)' {aka '_Bool(struct folio *)'} 47 | static inline bool zswap_load(struct folio *folio) | ^~~~~~~~~~ mm/zswap.c: In function 'zswap_load': mm/zswap.c:1646:24: error: 'ZSWPIN' undeclared (first use in this function); did you mean 'PSWPIN'? 1646 | count_vm_event(ZSWPIN); | ^~~~~~ | PSWPIN mm/zswap.c: At top level: mm/zswap.c:1659:6: error: redefinition of 'zswap_invalidate' 1659 | void zswap_invalidate(swp_entry_t swp) | ^~~~~~~~~~~~~~~~ include/linux/zswap.h:52:20: note: previous definition of 'zswap_invalidate' with type 'void(swp_entry_t)' 52 | static inline void zswap_invalidate(swp_entry_t swp) {} | ^~~~~~~~~~~~~~~~ mm/zswap.c:1670:5: error: redefinition of 'zswap_swapon' 1670 | int zswap_swapon(int type, unsigned long nr_pages) | ^~~~~~~~~~~~ include/linux/zswap.h:53:19: note: previous definition of 'zswap_swapon' with type 'int(int, long unsigned int)' 53 | static inline int zswap_swapon(int type, unsigned long nr_pages) | ^~~~~~~~~~~~ In file included from include/vdso/const.h:5, from include/linux/const.h:4, from include/linux/list.h:9, from include/linux/module.h:12: mm/zswap.c: In function 'zswap_swapon': mm/zswap.c:1675:37: error: 'SWAP_ADDRESS_SPACE_PAGES' undeclared (first use in this function) 1675 | nr = DIV_ROUND_UP(nr_pages, SWAP_ADDRESS_SPACE_PAGES); | ^~~~~~~~~~~~~~~~~~~~~~~~ include/uapi/linux/const.h:34:46: note: in definition of macro '__KERNEL_DIV_ROUND_UP' 34 | #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) | ^ mm/zswap.c:1675:14: note: in expansion of macro 'DIV_ROUND_UP' 1675 | nr = DIV_ROUND_UP(nr_pages, SWAP_ADDRESS_SPACE_PAGES); | ^~~~~~~~~~~~ mm/zswap.c: At top level: mm/zswap.c:1690:6: error: redefinition of 'zswap_swapoff' 1690 | void zswap_swapoff(int type) | ^~~~~~~~~~~~~ include/linux/zswap.h:57:20: note: previous definition of 'zswap_swapoff' with type 'void(int)' 57 | static inline void zswap_swapoff(int type) {} | ^~~~~~~~~~~~~ mm/zswap.c: In function 'swap_zswap_tree': mm/zswap.c:245:1: warning: control reaches end of non-void function [-Wreturn-type] 245 | } | ^ vim +744 mm/zswap.c 741 742 void zswap_lruvec_state_init(struct lruvec *lruvec) 743 { > 744 atomic_long_set(&lruvec->zswap_lruvec_state.nr_disk_swapins, 0); 745 } 746 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki