[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <47fd6aed-cb91-488d-ac2c-92f9ce73887f@arm.com>
Date: Wed, 5 Mar 2025 16:32:21 +0000
From: Ryan Roberts <ryan.roberts@....com>
To: kernel test robot <lkp@...el.com>,
Catalin Marinas <catalin.marinas@....com>, Will Deacon <will@...nel.org>,
Pasha Tatashin <pasha.tatashin@...een.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Uladzislau Rezki <urezki@...il.com>, Christoph Hellwig <hch@...radead.org>,
David Hildenbrand <david@...hat.com>,
"Matthew Wilcox (Oracle)" <willy@...radead.org>,
Mark Rutland <mark.rutland@....com>,
Anshuman Khandual <anshuman.khandual@....com>,
Alexandre Ghiti <alexghiti@...osinc.com>,
Kevin Brodsky <kevin.brodsky@....com>
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
Linux Memory Management List <linux-mm@...ck.org>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 05/11] arm64: hugetlb: Use set_ptes_anysz() and
ptep_get_and_clear_anysz()
On 05/03/2025 16:00, kernel test robot wrote:
> 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@intel.com/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@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@...el.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202503052315.vk7m958M-lkp@intel.com/
>
> 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;
Ahh yes, thanks! Looks like this line can be removed since we no longer need the
address.
Catalin, I was optimistically hoping this might be the final version. If it is,
are you happy to fold this in? Or do you want me to re-spin regardless?
> 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
>
Powered by blists - more mailing lists