* [davidhildenbrand:migration 22/22] include/linux/mm.h:2161:47: error: use of undeclared identifier 'PAGE_MAPPING_FLAGS'
@ 2025-05-13 23:21 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-05-13 23:21 UTC (permalink / raw)
To: David Hildenbrand; +Cc: llvm, oe-kbuild-all
tree: https://github.com/davidhildenbrand/linux migration
head: e21c02eb687873041b47954e3fc7b47e9d3d3675
commit: e21c02eb687873041b47954e3fc7b47e9d3d3675 [22/22] mm: rename PAGE_MAPPING_* to FOLIO_MAPPING_*
config: arm-randconfig-002-20250514 (https://download.01.org/0day-ci/archive/20250514/202505140705.prYAlYt7-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250514/202505140705.prYAlYt7-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/202505140705.prYAlYt7-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from arch/arm/kernel/asm-offsets.c:12:
>> include/linux/mm.h:2161:47: error: use of undeclared identifier 'PAGE_MAPPING_FLAGS'
2161 | } else if (!((unsigned long)folio->mapping & PAGE_MAPPING_FLAGS)) {
| ^
1 error generated.
make[3]: *** [scripts/Makefile.build:98: arch/arm/kernel/asm-offsets.s] Error 1 shuffle=2209529806
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [Makefile:1275: prepare0] Error 2 shuffle=2209529806
make[2]: Target 'prepare' not remade because of errors.
make[1]: *** [Makefile:248: __sub-make] Error 2 shuffle=2209529806
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2 shuffle=2209529806
make: Target 'prepare' not remade because of errors.
vim +/PAGE_MAPPING_FLAGS +2161 include/linux/mm.h
fa4e3f5ffa5e6e Vishal Moola (Oracle 2023-01-30 2116)
e6f83630b79ed4 Shivank Garg 2025-04-30 2117 /**
e6f83630b79ed4 Shivank Garg 2025-04-30 2118 * folio_expected_ref_count - calculate the expected folio refcount
e6f83630b79ed4 Shivank Garg 2025-04-30 2119 * @folio: the folio
e6f83630b79ed4 Shivank Garg 2025-04-30 2120 *
e6f83630b79ed4 Shivank Garg 2025-04-30 2121 * Calculate the expected folio refcount, taking references from the pagecache,
e6f83630b79ed4 Shivank Garg 2025-04-30 2122 * swapcache, PG_private and page table mappings into account. Useful in
e6f83630b79ed4 Shivank Garg 2025-04-30 2123 * combination with folio_ref_count() to detect unexpected references (e.g.,
e6f83630b79ed4 Shivank Garg 2025-04-30 2124 * GUP or other temporary references).
e6f83630b79ed4 Shivank Garg 2025-04-30 2125 *
e6f83630b79ed4 Shivank Garg 2025-04-30 2126 * Does currently not consider references from the LRU cache. If the folio
e6f83630b79ed4 Shivank Garg 2025-04-30 2127 * was isolated from the LRU (which is the case during migration or split),
e6f83630b79ed4 Shivank Garg 2025-04-30 2128 * the LRU cache does not apply.
e6f83630b79ed4 Shivank Garg 2025-04-30 2129 *
e6f83630b79ed4 Shivank Garg 2025-04-30 2130 * Calling this function on an unmapped folio -- !folio_mapped() -- that is
e6f83630b79ed4 Shivank Garg 2025-04-30 2131 * locked will return a stable result.
e6f83630b79ed4 Shivank Garg 2025-04-30 2132 *
e6f83630b79ed4 Shivank Garg 2025-04-30 2133 * Calling this function on a mapped folio will not result in a stable result,
e6f83630b79ed4 Shivank Garg 2025-04-30 2134 * because nothing stops additional page table mappings from coming (e.g.,
e6f83630b79ed4 Shivank Garg 2025-04-30 2135 * fork()) or going (e.g., munmap()).
e6f83630b79ed4 Shivank Garg 2025-04-30 2136 *
e6f83630b79ed4 Shivank Garg 2025-04-30 2137 * Calling this function without the folio lock will also not result in a
e6f83630b79ed4 Shivank Garg 2025-04-30 2138 * stable result: for example, the folio might get dropped from the swapcache
e6f83630b79ed4 Shivank Garg 2025-04-30 2139 * concurrently.
e6f83630b79ed4 Shivank Garg 2025-04-30 2140 *
e6f83630b79ed4 Shivank Garg 2025-04-30 2141 * However, even when called without the folio lock or on a mapped folio,
e6f83630b79ed4 Shivank Garg 2025-04-30 2142 * this function can be used to detect unexpected references early (for example,
e6f83630b79ed4 Shivank Garg 2025-04-30 2143 * if it makes sense to even lock the folio and unmap it).
e6f83630b79ed4 Shivank Garg 2025-04-30 2144 *
e6f83630b79ed4 Shivank Garg 2025-04-30 2145 * The caller must add any reference (e.g., from folio_try_get()) it might be
e6f83630b79ed4 Shivank Garg 2025-04-30 2146 * holding itself to the result.
e6f83630b79ed4 Shivank Garg 2025-04-30 2147 *
e6f83630b79ed4 Shivank Garg 2025-04-30 2148 * Returns the expected folio refcount.
e6f83630b79ed4 Shivank Garg 2025-04-30 2149 */
e6f83630b79ed4 Shivank Garg 2025-04-30 2150 static inline int folio_expected_ref_count(const struct folio *folio)
e6f83630b79ed4 Shivank Garg 2025-04-30 2151 {
e6f83630b79ed4 Shivank Garg 2025-04-30 2152 const int order = folio_order(folio);
e6f83630b79ed4 Shivank Garg 2025-04-30 2153 int ref_count = 0;
e6f83630b79ed4 Shivank Garg 2025-04-30 2154
e6f83630b79ed4 Shivank Garg 2025-04-30 2155 if (WARN_ON_ONCE(folio_test_slab(folio)))
e6f83630b79ed4 Shivank Garg 2025-04-30 2156 return 0;
e6f83630b79ed4 Shivank Garg 2025-04-30 2157
e6f83630b79ed4 Shivank Garg 2025-04-30 2158 if (folio_test_anon(folio)) {
e6f83630b79ed4 Shivank Garg 2025-04-30 2159 /* One reference per page from the swapcache. */
e6f83630b79ed4 Shivank Garg 2025-04-30 2160 ref_count += folio_test_swapcache(folio) << order;
e6f83630b79ed4 Shivank Garg 2025-04-30 @2161 } else if (!((unsigned long)folio->mapping & PAGE_MAPPING_FLAGS)) {
e6f83630b79ed4 Shivank Garg 2025-04-30 2162 /* One reference per page from the pagecache. */
e6f83630b79ed4 Shivank Garg 2025-04-30 2163 ref_count += !!folio->mapping << order;
e6f83630b79ed4 Shivank Garg 2025-04-30 2164 /* One reference from PG_private. */
e6f83630b79ed4 Shivank Garg 2025-04-30 2165 ref_count += folio_test_private(folio);
e6f83630b79ed4 Shivank Garg 2025-04-30 2166 }
e6f83630b79ed4 Shivank Garg 2025-04-30 2167
e6f83630b79ed4 Shivank Garg 2025-04-30 2168 /* One reference per page table mapping. */
e6f83630b79ed4 Shivank Garg 2025-04-30 2169 return ref_count + folio_mapcount(folio);
e6f83630b79ed4 Shivank Garg 2025-04-30 2170 }
e6f83630b79ed4 Shivank Garg 2025-04-30 2171
:::::: The code at line 2161 was first introduced by commit
:::::: e6f83630b79ed43763cd19a20f80885f568b8991 mm: add folio_expected_ref_count() for reference count calculation
:::::: TO: Shivank Garg <shivankg@amd.com>
:::::: CC: Andrew Morton <akpm@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-05-13 23:22 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-13 23:21 [davidhildenbrand:migration 22/22] include/linux/mm.h:2161:47: error: use of undeclared identifier 'PAGE_MAPPING_FLAGS' kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox