On 06/03/2025 05:08, kernel test robot wrote: > Hi Ryan, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on linus/master] > [also build test ERROR 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-5-ryan.roberts%40arm.com > patch subject: [PATCH v3 04/11] arm64/mm: Refactor __set_ptes() and __ptep_get_and_clear() > config: arm64-randconfig-001-20250305 (https://download.01.org/0day-ci/archive/20250306/202503061237.QurSXHSC-lkp@xxxxxxxxx/config) > compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a) > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250306/202503061237.QurSXHSC-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/202503061237.QurSXHSC-lkp@xxxxxxxxx/ > > All errors (new ones prefixed by >>): > > In file included from arch/arm64/kernel/asm-offsets.c:12: > In file included from include/linux/ftrace.h:10: > In file included from include/linux/trace_recursion.h:5: > In file included from include/linux/interrupt.h:11: > In file included from include/linux/hardirq.h:11: > In file included from arch/arm64/include/asm/hardirq.h:17: > In file included from include/asm-generic/hardirq.h:17: > In file included from include/linux/irq.h:20: > In file included from include/linux/io.h:14: > In file included from arch/arm64/include/asm/io.h:12: > In file included from include/linux/pgtable.h:6: >>> arch/arm64/include/asm/pgtable.h:639:7: error: duplicate case value '536870912' > case PUD_SIZE: > ^ > include/asm-generic/pgtable-nopud.h:20:20: note: expanded from macro 'PUD_SIZE' > #define PUD_SIZE (1UL << PUD_SHIFT) > ^ > arch/arm64/include/asm/pgtable.h:636:7: note: previous case defined here > case PMD_SIZE: > ^ > include/asm-generic/pgtable-nopmd.h:22:20: note: expanded from macro 'PMD_SIZE' > #define PMD_SIZE (1UL << PMD_SHIFT) > ^ > In file included from arch/arm64/kernel/asm-offsets.c:12: > In file included from include/linux/ftrace.h:10: > In file included from include/linux/trace_recursion.h:5: > In file included from include/linux/interrupt.h:11: > In file included from include/linux/hardirq.h:11: > In file included from arch/arm64/include/asm/hardirq.h:17: > In file included from include/asm-generic/hardirq.h:17: > In file included from include/linux/irq.h:20: > In file included from include/linux/io.h:14: > In file included from arch/arm64/include/asm/io.h:12: > In file included from include/linux/pgtable.h:6: > arch/arm64/include/asm/pgtable.h:1303:7: error: duplicate case value '536870912' > case PUD_SIZE: > ^ > include/asm-generic/pgtable-nopud.h:20:20: note: expanded from macro 'PUD_SIZE' > #define PUD_SIZE (1UL << PUD_SHIFT) > ^ > arch/arm64/include/asm/pgtable.h:1300:7: note: previous case defined here > case PMD_SIZE: > ^ > include/asm-generic/pgtable-nopmd.h:22:20: note: expanded from macro 'PMD_SIZE' > #define PMD_SIZE (1UL << PMD_SHIFT) > ^ > 2 errors generated. > make[3]: *** [scripts/Makefile.build:102: arch/arm64/kernel/asm-offsets.s] Error 1 shuffle=4064171735 > make[3]: Target 'prepare' not remade because of errors. > make[2]: *** [Makefile:1264: prepare0] Error 2 shuffle=4064171735 > make[2]: Target 'prepare' not remade because of errors. > make[1]: *** [Makefile:251: __sub-make] Error 2 shuffle=4064171735 > make[1]: Target 'prepare' not remade because of errors. > make: *** [Makefile:251: __sub-make] Error 2 shuffle=4064171735 > make: Target 'prepare' not remade because of errors. > > > vim +/536870912 +639 arch/arm64/include/asm/pgtable.h > > 626 > 627 static inline void set_ptes_anysz(struct mm_struct *mm, pte_t *ptep, pte_t pte, > 628 unsigned int nr, unsigned long pgsize) > 629 { > 630 unsigned long stride = pgsize >> PAGE_SHIFT; > 631 > 632 switch (pgsize) { > 633 case PAGE_SIZE: > 634 page_table_check_ptes_set(mm, ptep, pte, nr); > 635 break; > 636 case PMD_SIZE: > 637 page_table_check_pmds_set(mm, (pmd_t *)ptep, pte_pmd(pte), nr); > 638 break; > > 639 case PUD_SIZE: > 640 page_table_check_puds_set(mm, (pud_t *)ptep, pte_pud(pte), nr); > 641 break; Looks like this needs to be wrapped in `#ifndef __PAGETABLE_PMD_FOLDED`. This failing config folds the PMD so PMD_SIZE and PUD_SIZE are the same. Given there are now 2 kernel robot reports, I'll respin the series next week, giving time for any interim review comments. Thanks, Ryan > 642 default: > 643 VM_WARN_ON(1); > 644 } > 645 > 646 __sync_cache_and_tags(pte, nr * stride); > 647 > 648 for (;;) { > 649 __check_safe_pte_update(mm, ptep, pte); > 650 __set_pte(ptep, pte); > 651 if (--nr == 0) > 652 break; > 653 ptep++; > 654 pte = pte_advance_pfn(pte, stride); > 655 } > 656 } > 657 >