Re: [PATCH] mm/migrate: Add native folio functions
From: kernel test robot
Date: Sun Jun 07 2026 - 23:19:10 EST
Hi yahia,
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/yahia/mm-migrate-Add-native-folio-functions/20260608-081741
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/20260608001251.66847-1-yahia.a.abdrabou%40gmail.com
patch subject: [PATCH] mm/migrate: Add native folio functions
config: x86_64-rhel-9.4-rust (https://download.01.org/0day-ci/archive/20260608/202606080542.ER5s80Rl-lkp@xxxxxxxxx/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project f43d6834093b19baf79beda8c0337ab020ac5f17)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260608/202606080542.ER5s80Rl-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/202606080542.ER5s80Rl-lkp@xxxxxxxxx/
All errors (new ones prefixed by >>):
In file included from arch/x86/kernel/asm-offsets.c:9:
In file included from include/linux/crypto.h:18:
In file included from include/linux/slab.h:17:
In file included from include/linux/gfp.h:7:
In file included from include/linux/mmzone.h:23:
>> include/linux/page-flags.h:1113:1: error: use of undeclared identifier 'PG_MovableOpsIsolated'; did you mean 'PG_movable_ops_isolated'?
1113 | FOLIO_TEST_FLAG(MovableOpsIsolated, movable_ops_isolated)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/page-flags.h:412:19: note: expanded from macro 'FOLIO_TEST_FLAG'
412 | { return test_bit(PG_##name, const_folio_flags(folio, page)); }
| ^~~~~~~~~
<scratch space>:185:1: note: expanded from here
185 | PG_MovableOpsIsolated
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/page-flags.h:172:2: note: 'PG_movable_ops_isolated' declared here
172 | PG_movable_ops_isolated = PG_reclaim,
| ^
>> include/linux/page-flags.h:1113:37: error: use of undeclared identifier 'movable_ops_isolated'; did you mean 'PG_movable_ops_isolated'?
1113 | FOLIO_TEST_FLAG(MovableOpsIsolated, movable_ops_isolated)
| ^~~~~~~~~~~~~~~~~~~~
| PG_movable_ops_isolated
include/linux/page-flags.h:412:55: note: expanded from macro 'FOLIO_TEST_FLAG'
412 | { return test_bit(PG_##name, const_folio_flags(folio, page)); }
| ^~~~
include/linux/bitops.h:60:50: note: expanded from macro 'test_bit'
60 | #define test_bit(nr, addr) bitop(_test_bit, nr, addr)
| ^~~~
include/linux/bitops.h:44:37: note: expanded from macro 'bitop'
44 | __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
| ^~~~
include/linux/page-flags.h:172:2: note: 'PG_movable_ops_isolated' declared here
172 | PG_movable_ops_isolated = PG_reclaim,
| ^
>> include/linux/page-flags.h:1113:37: error: use of undeclared identifier 'movable_ops_isolated'; did you mean 'PG_movable_ops_isolated'?
1113 | FOLIO_TEST_FLAG(MovableOpsIsolated, movable_ops_isolated)
| ^~~~~~~~~~~~~~~~~~~~
| PG_movable_ops_isolated
include/linux/page-flags.h:412:55: note: expanded from macro 'FOLIO_TEST_FLAG'
412 | { return test_bit(PG_##name, const_folio_flags(folio, page)); }
| ^~~~
include/linux/bitops.h:60:50: note: expanded from macro 'test_bit'
60 | #define test_bit(nr, addr) bitop(_test_bit, nr, addr)
| ^~~~
include/linux/bitops.h:45:16: note: expanded from macro 'bitop'
45 | (uintptr_t)(addr) != (uintptr_t)NULL && \
| ^~~~
include/linux/page-flags.h:172:2: note: 'PG_movable_ops_isolated' declared here
172 | PG_movable_ops_isolated = PG_reclaim,
| ^
>> include/linux/page-flags.h:1113:37: error: use of undeclared identifier 'movable_ops_isolated'; did you mean 'PG_movable_ops_isolated'?
1113 | FOLIO_TEST_FLAG(MovableOpsIsolated, movable_ops_isolated)
| ^~~~~~~~~~~~~~~~~~~~
| PG_movable_ops_isolated
include/linux/page-flags.h:412:55: note: expanded from macro 'FOLIO_TEST_FLAG'
412 | { return test_bit(PG_##name, const_folio_flags(folio, page)); }
| ^~~~
include/linux/bitops.h:60:50: note: expanded from macro 'test_bit'
60 | #define test_bit(nr, addr) bitop(_test_bit, nr, addr)
| ^~~~
include/linux/bitops.h:46:50: note: expanded from macro 'bitop'
46 | __builtin_constant_p(*(const unsigned long *)(addr))) ? \
| ^~~~
include/linux/page-flags.h:172:2: note: 'PG_movable_ops_isolated' declared here
172 | PG_movable_ops_isolated = PG_reclaim,
| ^
>> include/linux/page-flags.h:1113:1: error: use of undeclared identifier 'PG_MovableOpsIsolated'; did you mean 'PG_movable_ops_isolated'?
1113 | FOLIO_TEST_FLAG(MovableOpsIsolated, movable_ops_isolated)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/page-flags.h:412:19: note: expanded from macro 'FOLIO_TEST_FLAG'
412 | { return test_bit(PG_##name, const_folio_flags(folio, page)); }
| ^~~~~~~~~
<scratch space>:185:1: note: expanded from here
185 | PG_MovableOpsIsolated
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/page-flags.h:172:2: note: 'PG_movable_ops_isolated' declared here
172 | PG_movable_ops_isolated = PG_reclaim,
| ^
>> include/linux/page-flags.h:1113:37: error: use of undeclared identifier 'movable_ops_isolated'; did you mean 'PG_movable_ops_isolated'?
1113 | FOLIO_TEST_FLAG(MovableOpsIsolated, movable_ops_isolated)
| ^~~~~~~~~~~~~~~~~~~~
| PG_movable_ops_isolated
include/linux/page-flags.h:412:55: note: expanded from macro 'FOLIO_TEST_FLAG'
412 | { return test_bit(PG_##name, const_folio_flags(folio, page)); }
| ^~~~
include/linux/bitops.h:60:50: note: expanded from macro 'test_bit'
60 | #define test_bit(nr, addr) bitop(_test_bit, nr, addr)
| ^~~~
include/linux/bitops.h:47:17: note: expanded from macro 'bitop'
47 | const##op(nr, addr) : op(nr, addr))
| ^~~~
include/linux/page-flags.h:172:2: note: 'PG_movable_ops_isolated' declared here
172 | PG_movable_ops_isolated = PG_reclaim,
| ^
>> include/linux/page-flags.h:1113:1: error: use of undeclared identifier 'PG_MovableOpsIsolated'; did you mean 'PG_movable_ops_isolated'?
1113 | FOLIO_TEST_FLAG(MovableOpsIsolated, movable_ops_isolated)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/page-flags.h:412:19: note: expanded from macro 'FOLIO_TEST_FLAG'
412 | { return test_bit(PG_##name, const_folio_flags(folio, page)); }
| ^~~~~~~~~
<scratch space>:185:1: note: expanded from here
185 | PG_MovableOpsIsolated
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/page-flags.h:172:2: note: 'PG_movable_ops_isolated' declared here
172 | PG_movable_ops_isolated = PG_reclaim,
| ^
>> include/linux/page-flags.h:1113:37: error: use of undeclared identifier 'movable_ops_isolated'; did you mean 'PG_movable_ops_isolated'?
1113 | FOLIO_TEST_FLAG(MovableOpsIsolated, movable_ops_isolated)
| ^~~~~~~~~~~~~~~~~~~~
| PG_movable_ops_isolated
include/linux/page-flags.h:412:55: note: expanded from macro 'FOLIO_TEST_FLAG'
412 | { return test_bit(PG_##name, const_folio_flags(folio, page)); }
| ^~~~
include/linux/bitops.h:60:50: note: expanded from macro 'test_bit'
60 | #define test_bit(nr, addr) bitop(_test_bit, nr, addr)
| ^~~~
include/linux/bitops.h:47:32: note: expanded from macro 'bitop'
47 | const##op(nr, addr) : op(nr, addr))
| ^~~~
include/linux/page-flags.h:172:2: note: 'PG_movable_ops_isolated' declared here
172 | PG_movable_ops_isolated = PG_reclaim,
| ^
In file included from arch/x86/kernel/asm-offsets.c:14:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:13:
In file included from include/linux/cgroup.h:17:
In file included from include/linux/fs.h:5:
In file included from include/linux/fs/super.h:5:
In file included from include/linux/fs/super_types.h:13:
In file included from include/linux/percpu-rwsem.h:7:
In file included from include/linux/rcuwait.h:6:
In file included from include/linux/sched/signal.h:6:
include/linux/signal.h:98:11: warning: array index 3 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
98 | return (set->sig[3] | set->sig[2] |
| ^ ~
arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
24 | unsigned long sig[_NSIG_WORDS];
| ^
In file included from arch/x86/kernel/asm-offsets.c:14:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:13:
In file included from include/linux/cgroup.h:17:
In file included from include/linux/fs.h:5:
In file included from include/linux/fs/super.h:5:
In file included from include/linux/fs/super_types.h:13:
In file included from include/linux/percpu-rwsem.h:7:
In file included from include/linux/rcuwait.h:6:
In file included from include/linux/sched/signal.h:6:
include/linux/signal.h:98:25: warning: array index 2 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
98 | return (set->sig[3] | set->sig[2] |
| ^ ~
arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
24 | unsigned long sig[_NSIG_WORDS];
| ^
In file included from arch/x86/kernel/asm-offsets.c:14:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:13:
In file included from include/linux/cgroup.h:17:
In file included from include/linux/fs.h:5:
In file included from include/linux/fs/super.h:5:
In file included from include/linux/fs/super_types.h:13:
In file included from include/linux/percpu-rwsem.h:7:
In file included from include/linux/rcuwait.h:6:
In file included from include/linux/sched/signal.h:6:
include/linux/signal.h:99:4: warning: array index 1 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
99 | set->sig[1] | set->sig[0]) == 0;
| ^ ~
arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
24 | unsigned long sig[_NSIG_WORDS];
| ^
In file included from arch/x86/kernel/asm-offsets.c:14:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:13:
In file included from include/linux/cgroup.h:17:
In file included from include/linux/fs.h:5:
In file included from include/linux/fs/super.h:5:
In file included from include/linux/fs/super_types.h:13:
In file included from include/linux/percpu-rwsem.h:7:
In file included from include/linux/rcuwait.h:6:
In file included from include/linux/sched/signal.h:6:
include/linux/signal.h:101:11: warning: array index 1 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
101 | return (set->sig[1] | set->sig[0]) == 0;
| ^ ~
arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
24 | unsigned long sig[_NSIG_WORDS];
| ^
In file included from arch/x86/kernel/asm-offsets.c:14:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:13:
In file included from include/linux/cgroup.h:17:
In file included from include/linux/fs.h:5:
In file included from include/linux/fs/super.h:5:
In file included from include/linux/fs/super_types.h:13:
In file included from include/linux/percpu-rwsem.h:7:
In file included from include/linux/rcuwait.h:6:
In file included from include/linux/sched/signal.h:6:
include/linux/signal.h:114:11: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds]
114 | return (set1->sig[3] == set2->sig[3]) &&
| ^ ~
arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
24 | unsigned long sig[_NSIG_WORDS];
| ^
vim +1113 include/linux/page-flags.h
1093
1094 #ifdef CONFIG_MIGRATION
1095 /*
1096 * This page is migratable through movable_ops (for selected typed pages
1097 * only).
1098 *
1099 * Page migration of such pages might fail, for example, if the page is
1100 * already isolated by somebody else, or if the page is about to get freed.
1101 *
1102 * While a subsystem might set selected typed pages that support page migration
1103 * as being movable through movable_ops, it must never clear this flag.
1104 *
1105 * This flag is only cleared when the page is freed back to the buddy.
1106 *
1107 * Only selected page types support this flag (see page_movable_ops()) and
1108 * the flag might be used in other context for other pages. Always use
1109 * page_has_movable_ops() instead.
1110 */
1111 TESTPAGEFLAG(MovableOps, movable_ops, PF_NO_TAIL);
1112 SETPAGEFLAG(MovableOps, movable_ops, PF_NO_TAIL);
> 1113 FOLIO_TEST_FLAG(MovableOpsIsolated, movable_ops_isolated)
1114 /*
1115 * A movable_ops page has this flag set while it is isolated for migration.
1116 * This flag primarily protects against concurrent migration attempts.
1117 *
1118 * Once migration ended (success or failure), the flag is cleared. The
1119 * flag is managed by the migration core.
1120 */
1121 PAGEFLAG(MovableOpsIsolated, movable_ops_isolated, PF_NO_TAIL);
1122 #else /* !CONFIG_MIGRATION */
1123 TESTPAGEFLAG_FALSE(MovableOps, movable_ops);
1124 SETPAGEFLAG_NOOP(MovableOps, movable_ops);
1125 PAGEFLAG_FALSE(MovableOpsIsolated, movable_ops_isolated);
1126 #endif /* CONFIG_MIGRATION */
1127
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki