Re: [PATCH v3 05/11] arm64: hugetlb: Use set_ptes_anysz() and ptep_get_and_clear_anysz()

From: kernel test robot
Date: Wed Mar 05 2025 - 11:00:56 EST


Hi Ryan,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on v6.14-rc5 next-20250305]
[cannot apply to arm64/for-next/core akpm-mm/mm-everything arm-perf/for-next/perf]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Ryan-Roberts/arm64-hugetlb-Cleanup-huge_pte-size-discovery-mechanisms/20250304-230647
base: linus/master
patch link: https://lore.kernel.org/r/20250304150444.3788920-6-ryan.roberts%40arm.com
patch subject: [PATCH v3 05/11] arm64: hugetlb: Use set_ptes_anysz() and ptep_get_and_clear_anysz()
config: arm64-randconfig-003-20250305 (https://download.01.org/0day-ci/archive/20250305/202503052315.vk7m958M-lkp@xxxxxxxxx/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 14170b16028c087ca154878f5ed93d3089a965c6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250305/202503052315.vk7m958M-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/202503052315.vk7m958M-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

In file included from arch/arm64/mm/hugetlbpage.c:12:
In file included from include/linux/mm.h:2224:
include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
504 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
505 | item];
| ~~~~
include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
511 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
512 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/mm/hugetlbpage.c:154:23: warning: parameter 'addr' set but not used [-Wunused-but-set-parameter]
154 | unsigned long addr,
| ^
3 warnings generated.


vim +/addr +154 arch/arm64/mm/hugetlbpage.c

bc5dfb4fd7bd471 Baolin Wang 2022-05-16 144
d8bdcff2876424d Steve Capper 2017-08-22 145 /*
d8bdcff2876424d Steve Capper 2017-08-22 146 * Changing some bits of contiguous entries requires us to follow a
d8bdcff2876424d Steve Capper 2017-08-22 147 * Break-Before-Make approach, breaking the whole contiguous set
d8bdcff2876424d Steve Capper 2017-08-22 148 * before we can change any entries. See ARM DDI 0487A.k_iss10775,
d8bdcff2876424d Steve Capper 2017-08-22 149 * "Misprogramming of the Contiguous bit", page D4-1762.
d8bdcff2876424d Steve Capper 2017-08-22 150 *
d8bdcff2876424d Steve Capper 2017-08-22 151 * This helper performs the break step.
d8bdcff2876424d Steve Capper 2017-08-22 152 */
fb396bb459c1fa3 Anshuman Khandual 2022-05-10 153 static pte_t get_clear_contig(struct mm_struct *mm,
d8bdcff2876424d Steve Capper 2017-08-22 @154 unsigned long addr,
d8bdcff2876424d Steve Capper 2017-08-22 155 pte_t *ptep,
d8bdcff2876424d Steve Capper 2017-08-22 156 unsigned long pgsize,
d8bdcff2876424d Steve Capper 2017-08-22 157 unsigned long ncontig)
d8bdcff2876424d Steve Capper 2017-08-22 158 {
49c87f7677746f3 Ryan Roberts 2025-02-26 159 pte_t pte, tmp_pte;
49c87f7677746f3 Ryan Roberts 2025-02-26 160 bool present;
49c87f7677746f3 Ryan Roberts 2025-02-26 161
66251d3eadf78e2 Ryan Roberts 2025-03-04 162 pte = ptep_get_and_clear_anysz(mm, ptep, pgsize);
49c87f7677746f3 Ryan Roberts 2025-02-26 163 present = pte_present(pte);
49c87f7677746f3 Ryan Roberts 2025-02-26 164 while (--ncontig) {
49c87f7677746f3 Ryan Roberts 2025-02-26 165 ptep++;
49c87f7677746f3 Ryan Roberts 2025-02-26 166 addr += pgsize;
66251d3eadf78e2 Ryan Roberts 2025-03-04 167 tmp_pte = ptep_get_and_clear_anysz(mm, ptep, pgsize);
49c87f7677746f3 Ryan Roberts 2025-02-26 168 if (present) {
49c87f7677746f3 Ryan Roberts 2025-02-26 169 if (pte_dirty(tmp_pte))
49c87f7677746f3 Ryan Roberts 2025-02-26 170 pte = pte_mkdirty(pte);
49c87f7677746f3 Ryan Roberts 2025-02-26 171 if (pte_young(tmp_pte))
49c87f7677746f3 Ryan Roberts 2025-02-26 172 pte = pte_mkyoung(pte);
d8bdcff2876424d Steve Capper 2017-08-22 173 }
49c87f7677746f3 Ryan Roberts 2025-02-26 174 }
49c87f7677746f3 Ryan Roberts 2025-02-26 175 return pte;
d8bdcff2876424d Steve Capper 2017-08-22 176 }
d8bdcff2876424d Steve Capper 2017-08-22 177

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki