Re: [PATCH v3 11/25] mm: Allow compound zone device pages

kernel test robot
2024-11-25T05:06:13Z

Hi Alistair,

kernel test robot noticed the following build errors:

[auto build test ERROR on 81983758430957d9a5cb3333fe324fd70cf63e7e]

url: https://github.com/intel-lab-lkp/linux/commits/Alistair-Popple/fuse-Fix-dax-truncate-punch_hole-fault-path/20241125-094004
base: 81983758430957d9a5cb3333fe324fd70cf63e7e
patch link: https://lore.kernel.org/r/f1a93b8a38e14e2ab279ece310175334e973b970.1732239628.git-series.apopple%40nvidia.com
patch subject: [PATCH v3 11/25] mm: Allow compound zone device pages
config: powerpc-ebony_defconfig (https://download.01.org/0day-ci/archive/20241125/202411251251.Tjig4oaV-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 592c0fe55f6d9a811028b5f3507be91458ab2713)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241125/202411251251.Tjig4oaV-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/202411251251.Tjig4oaV-lkp@intel.com/

All errors (new ones prefixed by >>):

In file included from arch/powerpc/kernel/asm-offsets.c:19:
In file included from include/linux/mman.h:5:
In file included from include/linux/mm.h:32:
>> include/linux/memremap.h:164:3: error: call to undeclared function 'page_pgmap'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
164 | page_pgmap(page)->type == MEMORY_DEVICE_PRIVATE;
| ^
>> include/linux/memremap.h:164:21: error: member reference type 'int' is not a pointer
164 | page_pgmap(page)->type == MEMORY_DEVICE_PRIVATE;
| ~~~~~~~~~~~~~~~~ ^
include/linux/memremap.h:176:3: error: call to undeclared function 'page_pgmap'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
176 | page_pgmap(page)->type == MEMORY_DEVICE_PCI_P2PDMA;
| ^
include/linux/memremap.h:176:21: error: member reference type 'int' is not a pointer
176 | page_pgmap(page)->type == MEMORY_DEVICE_PCI_P2PDMA;
| ~~~~~~~~~~~~~~~~ ^
include/linux/memremap.h:182:3: error: call to undeclared function 'page_pgmap'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
182 | page_pgmap(page)->type == MEMORY_DEVICE_COHERENT;
| ^
include/linux/memremap.h:182:21: error: member reference type 'int' is not a pointer
182 | page_pgmap(page)->type == MEMORY_DEVICE_COHERENT;
| ~~~~~~~~~~~~~~~~ ^
In file included from arch/powerpc/kernel/asm-offsets.c:19:
In file included from include/linux/mman.h:5:
In file included from include/linux/mm.h:2213:
include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
In file included from arch/powerpc/kernel/asm-offsets.c:19:
include/linux/mman.h:157:9: warning: division by zero is undefined [-Wdivision-by-zero]
157 | _calc_vm_trans(flags, MAP_LOCKED, VM_LOCKED ) |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/mman.h:136:21: note: expanded from macro '_calc_vm_trans'
136 | : ((x) & (bit1)) / ((bit1) / (bit2))))
| ^ ~~~~~~~~~~~~~~~~~
include/linux/mman.h:158:9: warning: division by zero is undefined [-Wdivision-by-zero]
158 | _calc_vm_trans(flags, MAP_SYNC, VM_SYNC ) |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/mman.h:136:21: note: expanded from macro '_calc_vm_trans'
136 | : ((x) & (bit1)) / ((bit1) / (bit2))))
| ^ ~~~~~~~~~~~~~~~~~
include/linux/mman.h:159:9: warning: division by zero is undefined [-Wdivision-by-zero]
159 | _calc_vm_trans(flags, MAP_STACK, VM_NOHUGEPAGE) |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/mman.h:136:21: note: expanded from macro '_calc_vm_trans'
136 | : ((x) & (bit1)) / ((bit1) / (bit2))))
| ^ ~~~~~~~~~~~~~~~~~
4 warnings and 6 errors generated.
make[3]: *** [scripts/Makefile.build:102: arch/powerpc/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [Makefile:1203: prepare0] Error 2
make[2]: Target 'prepare' not remade because of errors.
make[1]: *** [Makefile:224: __sub-make] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:224: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.

vim +/page_pgmap +164 include/linux/memremap.h

159
160 static inline bool is_device_private_page(const struct page *page)
161 {
162 return IS_ENABLED(CONFIG_DEVICE_PRIVATE) &&
163 is_zone_device_page(page) &&
> 164 page_pgmap(page)->type == MEMORY_DEVICE_PRIVATE;
165 }
166

--
0-DAY CI Kernel Test Service