From: kernel test robot <lkp@intel.com>
To: Barry Song <21cnbao@gmail.com>,
akpm@linux-foundation.org, linux-mm@kvack.org
Cc: oe-kbuild-all@lists.linux.dev, bhe@redhat.com, baohua@kernel.org,
chrisl@kernel.org, kasong@tencent.com, nphamcs@gmail.com,
shikemeng@huaweicloud.com, youngjun.park@lge.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/3] mm/swap: use swap_ops to register swap device's methods
Date: Sun, 29 Mar 2026 19:10:18 +0800 [thread overview]
Message-ID: <202603291919.Y8MwFsok-lkp@intel.com> (raw)
In-Reply-To: <20260328075812.11060-3-21cnbao@gmail.com>
Hi Barry,
kernel test robot noticed the following build errors:
[auto build test ERROR on akpm-mm/mm-everything]
url: https://github.com/intel-lab-lkp/linux/commits/Barry-Song/mm-swap-rename-mm-page_io-c-to-mm-swap_io-c/20260328-170852
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/20260328075812.11060-3-21cnbao%40gmail.com
patch subject: [PATCH v2 2/3] mm/swap: use swap_ops to register swap device's methods
config: um-randconfig-r072-20260329 (https://download.01.org/0day-ci/archive/20260329/202603291919.Y8MwFsok-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
smatch: v0.5.0-9004-gb810ac53
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260329/202603291919.Y8MwFsok-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603291919.Y8MwFsok-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from include/asm-generic/bug.h:7,
from ./arch/um/include/generated/asm/bug.h:1,
from arch/x86/include/asm/alternative.h:9,
from arch/x86/um/asm/barrier.h:6,
from include/linux/list.h:11,
from include/linux/module.h:12,
from mm/zswap.c:16:
mm/zswap.c: In function 'zswap_writeback_entry':
>> mm/zswap.c:1057:26: error: 'sis' undeclared (first use in this function); did you mean 'si'?
1057 | VM_WARN_ON_ONCE(!sis->ops || !sis->ops->write_folio);
| ^~~
include/linux/once_lite.h:28:41: note: in definition of macro 'DO_ONCE_LITE_IF'
28 | bool __ret_do_once = !!(condition); \
| ^~~~~~~~~
include/linux/mmdebug.h:123:37: note: in expansion of macro 'WARN_ON_ONCE'
123 | #define VM_WARN_ON_ONCE(cond) (void)WARN_ON_ONCE(cond)
| ^~~~~~~~~~~~
mm/zswap.c:1057:9: note: in expansion of macro 'VM_WARN_ON_ONCE'
1057 | VM_WARN_ON_ONCE(!sis->ops || !sis->ops->write_folio);
| ^~~~~~~~~~~~~~~
mm/zswap.c:1057:26: note: each undeclared identifier is reported only once for each function it appears in
1057 | VM_WARN_ON_ONCE(!sis->ops || !sis->ops->write_folio);
| ^~~
include/linux/once_lite.h:28:41: note: in definition of macro 'DO_ONCE_LITE_IF'
28 | bool __ret_do_once = !!(condition); \
| ^~~~~~~~~
include/linux/mmdebug.h:123:37: note: in expansion of macro 'WARN_ON_ONCE'
123 | #define VM_WARN_ON_ONCE(cond) (void)WARN_ON_ONCE(cond)
| ^~~~~~~~~~~~
mm/zswap.c:1057:9: note: in expansion of macro 'VM_WARN_ON_ONCE'
1057 | VM_WARN_ON_ONCE(!sis->ops || !sis->ops->write_folio);
| ^~~~~~~~~~~~~~~
vim +1057 mm/zswap.c
971
972 /*********************************
973 * writeback code
974 **********************************/
975 /*
976 * Attempts to free an entry by adding a folio to the swap cache,
977 * decompressing the entry data into the folio, and issuing a
978 * bio write to write the folio back to the swap device.
979 *
980 * This can be thought of as a "resumed writeback" of the folio
981 * to the swap device. We are basically resuming the same swap
982 * writeback path that was intercepted with the zswap_store()
983 * in the first place. After the folio has been decompressed into
984 * the swap cache, the compressed version stored by zswap can be
985 * freed.
986 */
987 static int zswap_writeback_entry(struct zswap_entry *entry,
988 swp_entry_t swpentry)
989 {
990 struct xarray *tree;
991 pgoff_t offset = swp_offset(swpentry);
992 struct folio *folio;
993 struct mempolicy *mpol;
994 bool folio_was_allocated;
995 struct swap_info_struct *si;
996 int ret = 0;
997
998 /* try to allocate swap cache folio */
999 si = get_swap_device(swpentry);
1000 if (!si)
1001 return -EEXIST;
1002
1003 mpol = get_task_policy(current);
1004 folio = swap_cache_alloc_folio(swpentry, GFP_KERNEL, mpol,
1005 NO_INTERLEAVE_INDEX, &folio_was_allocated);
1006 put_swap_device(si);
1007 if (!folio)
1008 return -ENOMEM;
1009
1010 /*
1011 * Found an existing folio, we raced with swapin or concurrent
1012 * shrinker. We generally writeback cold folios from zswap, and
1013 * swapin means the folio just became hot, so skip this folio.
1014 * For unlikely concurrent shrinker case, it will be unlinked
1015 * and freed when invalidated by the concurrent shrinker anyway.
1016 */
1017 if (!folio_was_allocated) {
1018 ret = -EEXIST;
1019 goto out;
1020 }
1021
1022 /*
1023 * folio is locked, and the swapcache is now secured against
1024 * concurrent swapping to and from the slot, and concurrent
1025 * swapoff so we can safely dereference the zswap tree here.
1026 * Verify that the swap entry hasn't been invalidated and recycled
1027 * behind our backs, to avoid overwriting a new swap folio with
1028 * old compressed data. Only when this is successful can the entry
1029 * be dereferenced.
1030 */
1031 tree = swap_zswap_tree(swpentry);
1032 if (entry != xa_load(tree, offset)) {
1033 ret = -ENOMEM;
1034 goto out;
1035 }
1036
1037 if (!zswap_decompress(entry, folio)) {
1038 ret = -EIO;
1039 goto out;
1040 }
1041
1042 xa_erase(tree, offset);
1043
1044 count_vm_event(ZSWPWB);
1045 if (entry->objcg)
1046 count_objcg_events(entry->objcg, ZSWPWB, 1);
1047
1048 zswap_entry_free(entry);
1049
1050 /* folio is up to date */
1051 folio_mark_uptodate(folio);
1052
1053 /* move it to the tail of the inactive list after end_writeback */
1054 folio_set_reclaim(folio);
1055
1056 /* start writeback */
> 1057 VM_WARN_ON_ONCE(!sis->ops || !sis->ops->write_folio);
1058 si->ops->write_folio(si, folio, NULL);
1059
1060 out:
1061 if (ret && ret != -EEXIST) {
1062 swap_cache_del_folio(folio);
1063 folio_unlock(folio);
1064 }
1065 folio_put(folio);
1066 return ret;
1067 }
1068
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2026-03-29 11:10 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-28 7:58 [PATCH v2 0/3] mm/swap: use swap_ops to register swap device's methods Barry Song
2026-03-28 7:58 ` [PATCH v2 1/3] mm/swap: rename mm/page_io.c to mm/swap_io.c Barry Song
2026-03-29 14:31 ` Chris Li
2026-03-28 7:58 ` [PATCH v2 2/3] mm/swap: use swap_ops to register swap device's methods Barry Song
2026-03-29 10:49 ` kernel test robot
2026-03-29 11:44 ` Barry Song
2026-03-29 11:10 ` kernel test robot [this message]
2026-03-31 3:30 ` Chris Li
2026-03-31 9:21 ` Barry Song
2026-03-31 16:10 ` Chris Li
2026-04-08 6:11 ` Baoquan He
2026-04-08 9:26 ` Chris Li
2026-04-08 15:45 ` Baoquan He
2026-04-08 16:27 ` Chris Li
2026-03-28 7:58 ` [PATCH v2 3/3] mm/swap_io.c: rename swap_writepage_* to swap_write_folio_* Barry Song
2026-03-29 14:31 ` Chris Li
2026-03-30 0:54 ` [PATCH v2 0/3] mm/swap: use swap_ops to register swap device's methods Baoquan He
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=202603291919.Y8MwFsok-lkp@intel.com \
--to=lkp@intel.com \
--cc=21cnbao@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=bhe@redhat.com \
--cc=chrisl@kernel.org \
--cc=kasong@tencent.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nphamcs@gmail.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=shikemeng@huaweicloud.com \
--cc=youngjun.park@lge.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.