* Re: [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock [not found] <0252f9acc29d4b1e9b8252dc003aff065c8ac1f6.1768389889.git.zhengqi.arch@bytedance.com> @ 2026-01-15 12:34 ` kernel test robot 2026-01-16 8:16 ` Qi Zheng 2026-01-16 6:29 ` kernel test robot 1 sibling, 1 reply; 5+ messages in thread From: kernel test robot @ 2026-01-15 12:34 UTC (permalink / raw) To: Qi Zheng; +Cc: llvm, oe-kbuild-all Hi Qi, kernel test robot noticed the following build errors: [auto build test ERROR on next-20260114] [cannot apply to akpm-mm/mm-everything brauner-vfs/vfs.all trace/for-next linus/master dennis-percpu/for-next v6.19-rc5 v6.19-rc4 v6.19-rc3 v6.19-rc5] [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/Qi-Zheng/mm-memcontrol-remove-dead-code-of-checking-parent-memory-cgroup/20260114-193921 base: next-20260114 patch link: https://lore.kernel.org/r/0252f9acc29d4b1e9b8252dc003aff065c8ac1f6.1768389889.git.zhengqi.arch%40bytedance.com patch subject: [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock config: powerpc64-randconfig-002-20260115 (https://download.01.org/0day-ci/archive/20260115/202601152057.xgusZpKm-lkp@intel.com/config) compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260115/202601152057.xgusZpKm-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/202601152057.xgusZpKm-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from crypto/ahash.c:26: In file included from include/net/netlink.h:6: In file included from include/linux/netlink.h:9: In file included from include/net/scm.h:9: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:32: >> include/linux/memcontrol.h:772:14: error: use of undeclared identifier 'lruvec' 772 | __acquires(&lruvec->lru_lock) | ^~~~~~ include/linux/memcontrol.h:773:13: error: use of undeclared identifier 'rcu' 773 | __acquires(rcu) | ^~~ include/linux/memcontrol.h:775:14: error: use of undeclared identifier 'lruvec' 775 | __acquires(&lruvec->lru_lock) | ^~~~~~ include/linux/memcontrol.h:776:13: error: use of undeclared identifier 'rcu' 776 | __acquires(rcu) | ^~~ include/linux/memcontrol.h:779:14: error: use of undeclared identifier 'lruvec' 779 | __acquires(&lruvec->lru_lock) | ^~~~~~ include/linux/memcontrol.h:780:13: error: use of undeclared identifier 'rcu' 780 | __acquires(rcu) | ^~~ include/linux/memcontrol.h:1507:13: error: use of undeclared identifier 'rcu' 1507 | __acquires(rcu) | ^~~ include/linux/memcontrol.h:1515:13: error: use of undeclared identifier 'rcu' 1515 | __releases(rcu) | ^~~ include/linux/memcontrol.h:1523:13: error: use of undeclared identifier 'rcu' 1523 | __releases(rcu) | ^~~ include/linux/memcontrol.h:1532:13: error: use of undeclared identifier 'rcu' 1532 | __releases(rcu) | ^~~ In file included from crypto/ahash.c:26: In file included from include/net/netlink.h:6: In file included from include/linux/netlink.h:9: In file included from include/net/scm.h:13: In file included from include/net/compat.h:8: include/linux/compat.h:454:22: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; | ^ ~ arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here 18 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from crypto/ahash.c:26: In file included from include/net/netlink.h:6: In file included from include/linux/netlink.h:9: In file included from include/net/scm.h:13: In file included from include/net/compat.h:8: include/linux/compat.h:454:10: warning: array index 7 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; | ^ ~ include/linux/compat.h:130:2: note: array 'sig' declared here 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; | ^ include/linux/compat.h:454:42: warning: array index 6 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; | ^ ~ include/linux/compat.h:130:2: note: array 'sig' declared here 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; | ^ include/linux/compat.h:454:53: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; | ^ ~ arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here 18 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from crypto/ahash.c:26: In file included from include/net/netlink.h:6: In file included from include/linux/netlink.h:9: In file included from include/net/scm.h:13: In file included from include/net/compat.h:8: include/linux/compat.h:456:22: warning: array index 2 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; | ^ ~ arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here 18 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from crypto/ahash.c:26: In file included from include/net/netlink.h:6: In file included from include/linux/netlink.h:9: In file included from include/net/scm.h:13: In file included from include/net/compat.h:8: include/linux/compat.h:456:10: warning: array index 5 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; | ^ ~ include/linux/compat.h:130:2: note: array 'sig' declared here 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; | ^ include/linux/compat.h:456:42: warning: array index 4 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; | ^ ~ include/linux/compat.h:130:2: note: array 'sig' declared here 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; | ^ include/linux/compat.h:456:53: warning: array index 2 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; | ^ ~ arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here 18 | unsigned long sig[_NSIG_WORDS]; | ^ In file included from crypto/ahash.c:26: In file included from include/net/netlink.h:6: In file included from include/linux/netlink.h:9: vim +/lruvec +772 include/linux/memcontrol.h 770 771 struct lruvec *folio_lruvec_lock(struct folio *folio); > 772 __acquires(&lruvec->lru_lock) 773 __acquires(rcu) 774 struct lruvec *folio_lruvec_lock_irq(struct folio *folio); 775 __acquires(&lruvec->lru_lock) 776 __acquires(rcu) 777 struct lruvec *folio_lruvec_lock_irqsave(struct folio *folio, 778 unsigned long *flags); 779 __acquires(&lruvec->lru_lock) 780 __acquires(rcu) 781 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock 2026-01-15 12:34 ` [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock kernel test robot @ 2026-01-16 8:16 ` Qi Zheng 2026-01-16 10:41 ` Philip Li 0 siblings, 1 reply; 5+ messages in thread From: Qi Zheng @ 2026-01-16 8:16 UTC (permalink / raw) To: kernel test robot; +Cc: llvm, oe-kbuild-all Hi, The compilation problem I see in the report occurs under the following configuration: 1. enable CONFIG_WARN_CONTEXT_ANALYSIS_ALL 2. make CC=clang bzImage Could you please test whether the following fixes can resolve the compilation issue? Thanks! ``` diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index e0b84b109b7ac..f28c5ef9bf604 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -742,15 +742,9 @@ struct mem_cgroup *get_mem_cgroup_from_current(void); struct mem_cgroup *get_mem_cgroup_from_folio(struct folio *folio); struct lruvec *folio_lruvec_lock(struct folio *folio); - __acquires(&lruvec->lru_lock) - __acquires(rcu) struct lruvec *folio_lruvec_lock_irq(struct folio *folio); - __acquires(&lruvec->lru_lock) - __acquires(rcu) struct lruvec *folio_lruvec_lock_irqsave(struct folio *folio, unsigned long *flags); - __acquires(&lruvec->lru_lock) - __acquires(rcu) static inline struct mem_cgroup *mem_cgroup_from_css(struct cgroup_subsys_state *css){ @@ -1477,38 +1471,10 @@ static inline struct lruvec *parent_lruvec(struct lruvec *lruvec) return mem_cgroup_lruvec(memcg, lruvec_pgdat(lruvec)); } -static inline void lruvec_lock_irq(struct lruvec *lruvec) - __acquires(&lruvec->lru_lock) - __acquires(rcu) -{ - rcu_read_lock(); - spin_lock_irq(&lruvec->lru_lock); -} - -static inline void lruvec_unlock(struct lruvec *lruvec) - __releases(&lruvec->lru_lock) - __releases(rcu) -{ - spin_unlock(&lruvec->lru_lock); - rcu_read_unlock(); -} - -static inline void lruvec_unlock_irq(struct lruvec *lruvec) - __releases(&lruvec->lru_lock) - __releases(rcu) -{ - spin_unlock_irq(&lruvec->lru_lock); - rcu_read_unlock(); -} - -static inline void lruvec_unlock_irqrestore(struct lruvec *lruvec, - unsigned long flags) - __releases(&lruvec->lru_lock) - __releases(rcu) -{ - spin_unlock_irqrestore(&lruvec->lru_lock, flags); - rcu_read_unlock(); -} +void lruvec_lock_irq(struct lruvec *lruvec); +void lruvec_unlock(struct lruvec *lruvec); +void lruvec_unlock_irq(struct lruvec *lruvec); +void lruvec_unlock_irqrestore(struct lruvec *lruvec, unsigned long flags); /* Test requires a stable folio->memcg binding, see folio_memcg() */ static inline bool folio_matches_lruvec(struct folio *folio, diff --git a/include/linux/swap.h b/include/linux/swap.h index 4449d1f371a56..77a6a9fa11981 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -328,9 +328,7 @@ extern unsigned long totalreserve_pages; /* linux/mm/swap.c */ void lru_note_cost_unlock_irq(struct lruvec *lruvec, bool file, - unsigned int nr_io, unsigned int nr_rotated) - __releases(lruvec->lru_lock); - __releases(rcu) + unsigned int nr_io, unsigned int nr_rotated); void lru_note_cost_refault(struct folio *); void folio_add_lru(struct folio *); void folio_add_lru_vma(struct folio *, struct vm_area_struct *); diff --git a/mm/memcontrol.c b/mm/memcontrol.c index c303c483f55a4..8907c9ea33bbc 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1313,6 +1313,39 @@ void mem_cgroup_scan_tasks(struct mem_cgroup *memcg, } } +void lruvec_lock_irq(struct lruvec *lruvec) + __acquires(&lruvec->lru_lock) + __acquires(rcu) +{ + rcu_read_lock(); + spin_lock_irq(&lruvec->lru_lock); +} + +void lruvec_unlock(struct lruvec *lruvec) + __releases(&lruvec->lru_lock) + __releases(rcu) +{ + spin_unlock(&lruvec->lru_lock); + rcu_read_unlock(); +} + +void lruvec_unlock_irq(struct lruvec *lruvec) + __releases(&lruvec->lru_lock) + __releases(rcu) +{ + spin_unlock_irq(&lruvec->lru_lock); + rcu_read_unlock(); +} + +void lruvec_unlock_irqrestore(struct lruvec *lruvec, + unsigned long flags) + __releases(&lruvec->lru_lock) + __releases(rcu) +{ + spin_unlock_irqrestore(&lruvec->lru_lock, flags); + rcu_read_unlock(); +} + /** * folio_lruvec_lock - Lock the lruvec for a folio. * @folio: Pointer to the folio. ``` On 1/15/26 8:34 PM, kernel test robot wrote: > Hi Qi, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on next-20260114] > [cannot apply to akpm-mm/mm-everything brauner-vfs/vfs.all trace/for-next linus/master dennis-percpu/for-next v6.19-rc5 v6.19-rc4 v6.19-rc3 v6.19-rc5] > [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/Qi-Zheng/mm-memcontrol-remove-dead-code-of-checking-parent-memory-cgroup/20260114-193921 > base: next-20260114 > patch link: https://lore.kernel.org/r/0252f9acc29d4b1e9b8252dc003aff065c8ac1f6.1768389889.git.zhengqi.arch%40bytedance.com > patch subject: [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock > config: powerpc64-randconfig-002-20260115 (https://download.01.org/0day-ci/archive/20260115/202601152057.xgusZpKm-lkp@intel.com/config) > compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710) > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260115/202601152057.xgusZpKm-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/202601152057.xgusZpKm-lkp@intel.com/ > > All errors (new ones prefixed by >>): > > In file included from crypto/ahash.c:26: > In file included from include/net/netlink.h:6: > In file included from include/linux/netlink.h:9: > In file included from include/net/scm.h:9: > In file included from include/linux/security.h:35: > In file included from include/linux/bpf.h:32: >>> include/linux/memcontrol.h:772:14: error: use of undeclared identifier 'lruvec' > 772 | __acquires(&lruvec->lru_lock) > | ^~~~~~ > include/linux/memcontrol.h:773:13: error: use of undeclared identifier 'rcu' > 773 | __acquires(rcu) > | ^~~ > include/linux/memcontrol.h:775:14: error: use of undeclared identifier 'lruvec' > 775 | __acquires(&lruvec->lru_lock) > | ^~~~~~ > include/linux/memcontrol.h:776:13: error: use of undeclared identifier 'rcu' > 776 | __acquires(rcu) > | ^~~ > include/linux/memcontrol.h:779:14: error: use of undeclared identifier 'lruvec' > 779 | __acquires(&lruvec->lru_lock) > | ^~~~~~ > include/linux/memcontrol.h:780:13: error: use of undeclared identifier 'rcu' > 780 | __acquires(rcu) > | ^~~ > include/linux/memcontrol.h:1507:13: error: use of undeclared identifier 'rcu' > 1507 | __acquires(rcu) > | ^~~ > include/linux/memcontrol.h:1515:13: error: use of undeclared identifier 'rcu' > 1515 | __releases(rcu) > | ^~~ > include/linux/memcontrol.h:1523:13: error: use of undeclared identifier 'rcu' > 1523 | __releases(rcu) > | ^~~ > include/linux/memcontrol.h:1532:13: error: use of undeclared identifier 'rcu' > 1532 | __releases(rcu) > | ^~~ > In file included from crypto/ahash.c:26: > In file included from include/net/netlink.h:6: > In file included from include/linux/netlink.h:9: > In file included from include/net/scm.h:13: > In file included from include/net/compat.h:8: > include/linux/compat.h:454:22: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] > 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; > | ^ ~ > arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here > 18 | unsigned long sig[_NSIG_WORDS]; > | ^ > In file included from crypto/ahash.c:26: > In file included from include/net/netlink.h:6: > In file included from include/linux/netlink.h:9: > In file included from include/net/scm.h:13: > In file included from include/net/compat.h:8: > include/linux/compat.h:454:10: warning: array index 7 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] > 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; > | ^ ~ > include/linux/compat.h:130:2: note: array 'sig' declared here > 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; > | ^ > include/linux/compat.h:454:42: warning: array index 6 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] > 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; > | ^ ~ > include/linux/compat.h:130:2: note: array 'sig' declared here > 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; > | ^ > include/linux/compat.h:454:53: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] > 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; > | ^ ~ > arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here > 18 | unsigned long sig[_NSIG_WORDS]; > | ^ > In file included from crypto/ahash.c:26: > In file included from include/net/netlink.h:6: > In file included from include/linux/netlink.h:9: > In file included from include/net/scm.h:13: > In file included from include/net/compat.h:8: > include/linux/compat.h:456:22: warning: array index 2 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] > 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; > | ^ ~ > arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here > 18 | unsigned long sig[_NSIG_WORDS]; > | ^ > In file included from crypto/ahash.c:26: > In file included from include/net/netlink.h:6: > In file included from include/linux/netlink.h:9: > In file included from include/net/scm.h:13: > In file included from include/net/compat.h:8: > include/linux/compat.h:456:10: warning: array index 5 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] > 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; > | ^ ~ > include/linux/compat.h:130:2: note: array 'sig' declared here > 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; > | ^ > include/linux/compat.h:456:42: warning: array index 4 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] > 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; > | ^ ~ > include/linux/compat.h:130:2: note: array 'sig' declared here > 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; > | ^ > include/linux/compat.h:456:53: warning: array index 2 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] > 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; > | ^ ~ > arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here > 18 | unsigned long sig[_NSIG_WORDS]; > | ^ > In file included from crypto/ahash.c:26: > In file included from include/net/netlink.h:6: > In file included from include/linux/netlink.h:9: > > > vim +/lruvec +772 include/linux/memcontrol.h > > 770 > 771 struct lruvec *folio_lruvec_lock(struct folio *folio); > > 772 __acquires(&lruvec->lru_lock) > 773 __acquires(rcu) > 774 struct lruvec *folio_lruvec_lock_irq(struct folio *folio); > 775 __acquires(&lruvec->lru_lock) > 776 __acquires(rcu) > 777 struct lruvec *folio_lruvec_lock_irqsave(struct folio *folio, > 778 unsigned long *flags); > 779 __acquires(&lruvec->lru_lock) > 780 __acquires(rcu) > 781 > ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock 2026-01-16 8:16 ` Qi Zheng @ 2026-01-16 10:41 ` Philip Li 2026-01-16 11:06 ` Qi Zheng 0 siblings, 1 reply; 5+ messages in thread From: Philip Li @ 2026-01-16 10:41 UTC (permalink / raw) To: Qi Zheng; +Cc: kernel test robot, llvm, oe-kbuild-all On Fri, Jan 16, 2026 at 04:16:31PM +0800, Qi Zheng wrote: > Hi, > > The compilation problem I see in the report occurs under the following > configuration: > > 1. enable CONFIG_WARN_CONTEXT_ANALYSIS_ALL > 2. make CC=clang bzImage > > Could you please test whether the following fixes can resolve the > compilation issue? Hi Zheng, is it ok to give a try to use the reproduce steps in the original report [1] to verify the fix? As for now, we haven't support the auto verification for the on demand request yet. [1] https://download.01.org/0day-ci/archive/20260115/202601152057.xgusZpKm-lkp@intel.com/reproduce > > Thanks! > > ``` > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index e0b84b109b7ac..f28c5ef9bf604 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -742,15 +742,9 @@ struct mem_cgroup *get_mem_cgroup_from_current(void); > struct mem_cgroup *get_mem_cgroup_from_folio(struct folio *folio); > > struct lruvec *folio_lruvec_lock(struct folio *folio); > - __acquires(&lruvec->lru_lock) > - __acquires(rcu) > struct lruvec *folio_lruvec_lock_irq(struct folio *folio); > - __acquires(&lruvec->lru_lock) > - __acquires(rcu) > struct lruvec *folio_lruvec_lock_irqsave(struct folio *folio, > unsigned long *flags); > - __acquires(&lruvec->lru_lock) > - __acquires(rcu) > > static inline > struct mem_cgroup *mem_cgroup_from_css(struct cgroup_subsys_state *css){ > @@ -1477,38 +1471,10 @@ static inline struct lruvec *parent_lruvec(struct > lruvec *lruvec) > return mem_cgroup_lruvec(memcg, lruvec_pgdat(lruvec)); > } > > -static inline void lruvec_lock_irq(struct lruvec *lruvec) > - __acquires(&lruvec->lru_lock) > - __acquires(rcu) > -{ > - rcu_read_lock(); > - spin_lock_irq(&lruvec->lru_lock); > -} > - > -static inline void lruvec_unlock(struct lruvec *lruvec) > - __releases(&lruvec->lru_lock) > - __releases(rcu) > -{ > - spin_unlock(&lruvec->lru_lock); > - rcu_read_unlock(); > -} > - > -static inline void lruvec_unlock_irq(struct lruvec *lruvec) > - __releases(&lruvec->lru_lock) > - __releases(rcu) > -{ > - spin_unlock_irq(&lruvec->lru_lock); > - rcu_read_unlock(); > -} > - > -static inline void lruvec_unlock_irqrestore(struct lruvec *lruvec, > - unsigned long flags) > - __releases(&lruvec->lru_lock) > - __releases(rcu) > -{ > - spin_unlock_irqrestore(&lruvec->lru_lock, flags); > - rcu_read_unlock(); > -} > +void lruvec_lock_irq(struct lruvec *lruvec); > +void lruvec_unlock(struct lruvec *lruvec); > +void lruvec_unlock_irq(struct lruvec *lruvec); > +void lruvec_unlock_irqrestore(struct lruvec *lruvec, unsigned long flags); > > /* Test requires a stable folio->memcg binding, see folio_memcg() */ > static inline bool folio_matches_lruvec(struct folio *folio, > diff --git a/include/linux/swap.h b/include/linux/swap.h > index 4449d1f371a56..77a6a9fa11981 100644 > --- a/include/linux/swap.h > +++ b/include/linux/swap.h > @@ -328,9 +328,7 @@ extern unsigned long totalreserve_pages; > > /* linux/mm/swap.c */ > void lru_note_cost_unlock_irq(struct lruvec *lruvec, bool file, > - unsigned int nr_io, unsigned int nr_rotated) > - __releases(lruvec->lru_lock); > - __releases(rcu) > + unsigned int nr_io, unsigned int nr_rotated); > void lru_note_cost_refault(struct folio *); > void folio_add_lru(struct folio *); > void folio_add_lru_vma(struct folio *, struct vm_area_struct *); > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index c303c483f55a4..8907c9ea33bbc 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -1313,6 +1313,39 @@ void mem_cgroup_scan_tasks(struct mem_cgroup *memcg, > } > } > > +void lruvec_lock_irq(struct lruvec *lruvec) > + __acquires(&lruvec->lru_lock) > + __acquires(rcu) > +{ > + rcu_read_lock(); > + spin_lock_irq(&lruvec->lru_lock); > +} > + > +void lruvec_unlock(struct lruvec *lruvec) > + __releases(&lruvec->lru_lock) > + __releases(rcu) > +{ > + spin_unlock(&lruvec->lru_lock); > + rcu_read_unlock(); > +} > + > +void lruvec_unlock_irq(struct lruvec *lruvec) > + __releases(&lruvec->lru_lock) > + __releases(rcu) > +{ > + spin_unlock_irq(&lruvec->lru_lock); > + rcu_read_unlock(); > +} > + > +void lruvec_unlock_irqrestore(struct lruvec *lruvec, > + unsigned long flags) > + __releases(&lruvec->lru_lock) > + __releases(rcu) > +{ > + spin_unlock_irqrestore(&lruvec->lru_lock, flags); > + rcu_read_unlock(); > +} > + > /** > * folio_lruvec_lock - Lock the lruvec for a folio. > * @folio: Pointer to the folio. > > ``` > > On 1/15/26 8:34 PM, kernel test robot wrote: > > Hi Qi, > > > > kernel test robot noticed the following build errors: > > > > [auto build test ERROR on next-20260114] > > [cannot apply to akpm-mm/mm-everything brauner-vfs/vfs.all trace/for-next linus/master dennis-percpu/for-next v6.19-rc5 v6.19-rc4 v6.19-rc3 v6.19-rc5] > > [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/Qi-Zheng/mm-memcontrol-remove-dead-code-of-checking-parent-memory-cgroup/20260114-193921 > > base: next-20260114 > > patch link: https://lore.kernel.org/r/0252f9acc29d4b1e9b8252dc003aff065c8ac1f6.1768389889.git.zhengqi.arch%40bytedance.com > > patch subject: [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock > > config: powerpc64-randconfig-002-20260115 (https://download.01.org/0day-ci/archive/20260115/202601152057.xgusZpKm-lkp@intel.com/config) > > compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710) > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260115/202601152057.xgusZpKm-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/202601152057.xgusZpKm-lkp@intel.com/ > > > > All errors (new ones prefixed by >>): > > > > In file included from crypto/ahash.c:26: > > In file included from include/net/netlink.h:6: > > In file included from include/linux/netlink.h:9: > > In file included from include/net/scm.h:9: > > In file included from include/linux/security.h:35: > > In file included from include/linux/bpf.h:32: > > > > include/linux/memcontrol.h:772:14: error: use of undeclared identifier 'lruvec' > > 772 | __acquires(&lruvec->lru_lock) > > | ^~~~~~ > > include/linux/memcontrol.h:773:13: error: use of undeclared identifier 'rcu' > > 773 | __acquires(rcu) > > | ^~~ > > include/linux/memcontrol.h:775:14: error: use of undeclared identifier 'lruvec' > > 775 | __acquires(&lruvec->lru_lock) > > | ^~~~~~ > > include/linux/memcontrol.h:776:13: error: use of undeclared identifier 'rcu' > > 776 | __acquires(rcu) > > | ^~~ > > include/linux/memcontrol.h:779:14: error: use of undeclared identifier 'lruvec' > > 779 | __acquires(&lruvec->lru_lock) > > | ^~~~~~ > > include/linux/memcontrol.h:780:13: error: use of undeclared identifier 'rcu' > > 780 | __acquires(rcu) > > | ^~~ > > include/linux/memcontrol.h:1507:13: error: use of undeclared identifier 'rcu' > > 1507 | __acquires(rcu) > > | ^~~ > > include/linux/memcontrol.h:1515:13: error: use of undeclared identifier 'rcu' > > 1515 | __releases(rcu) > > | ^~~ > > include/linux/memcontrol.h:1523:13: error: use of undeclared identifier 'rcu' > > 1523 | __releases(rcu) > > | ^~~ > > include/linux/memcontrol.h:1532:13: error: use of undeclared identifier 'rcu' > > 1532 | __releases(rcu) > > | ^~~ > > In file included from crypto/ahash.c:26: > > In file included from include/net/netlink.h:6: > > In file included from include/linux/netlink.h:9: > > In file included from include/net/scm.h:13: > > In file included from include/net/compat.h:8: > > include/linux/compat.h:454:22: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] > > 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; > > | ^ ~ > > arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here > > 18 | unsigned long sig[_NSIG_WORDS]; > > | ^ > > In file included from crypto/ahash.c:26: > > In file included from include/net/netlink.h:6: > > In file included from include/linux/netlink.h:9: > > In file included from include/net/scm.h:13: > > In file included from include/net/compat.h:8: > > include/linux/compat.h:454:10: warning: array index 7 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] > > 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; > > | ^ ~ > > include/linux/compat.h:130:2: note: array 'sig' declared here > > 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; > > | ^ > > include/linux/compat.h:454:42: warning: array index 6 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] > > 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; > > | ^ ~ > > include/linux/compat.h:130:2: note: array 'sig' declared here > > 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; > > | ^ > > include/linux/compat.h:454:53: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] > > 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; > > | ^ ~ > > arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here > > 18 | unsigned long sig[_NSIG_WORDS]; > > | ^ > > In file included from crypto/ahash.c:26: > > In file included from include/net/netlink.h:6: > > In file included from include/linux/netlink.h:9: > > In file included from include/net/scm.h:13: > > In file included from include/net/compat.h:8: > > include/linux/compat.h:456:22: warning: array index 2 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] > > 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; > > | ^ ~ > > arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here > > 18 | unsigned long sig[_NSIG_WORDS]; > > | ^ > > In file included from crypto/ahash.c:26: > > In file included from include/net/netlink.h:6: > > In file included from include/linux/netlink.h:9: > > In file included from include/net/scm.h:13: > > In file included from include/net/compat.h:8: > > include/linux/compat.h:456:10: warning: array index 5 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] > > 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; > > | ^ ~ > > include/linux/compat.h:130:2: note: array 'sig' declared here > > 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; > > | ^ > > include/linux/compat.h:456:42: warning: array index 4 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] > > 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; > > | ^ ~ > > include/linux/compat.h:130:2: note: array 'sig' declared here > > 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; > > | ^ > > include/linux/compat.h:456:53: warning: array index 2 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] > > 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; > > | ^ ~ > > arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here > > 18 | unsigned long sig[_NSIG_WORDS]; > > | ^ > > In file included from crypto/ahash.c:26: > > In file included from include/net/netlink.h:6: > > In file included from include/linux/netlink.h:9: > > > > > > vim +/lruvec +772 include/linux/memcontrol.h > > > > 770 > > 771 struct lruvec *folio_lruvec_lock(struct folio *folio); > > > 772 __acquires(&lruvec->lru_lock) > > 773 __acquires(rcu) > > 774 struct lruvec *folio_lruvec_lock_irq(struct folio *folio); > > 775 __acquires(&lruvec->lru_lock) > > 776 __acquires(rcu) > > 777 struct lruvec *folio_lruvec_lock_irqsave(struct folio *folio, > > 778 unsigned long *flags); > > 779 __acquires(&lruvec->lru_lock) > > 780 __acquires(rcu) > > 781 > > > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock 2026-01-16 10:41 ` Philip Li @ 2026-01-16 11:06 ` Qi Zheng 0 siblings, 0 replies; 5+ messages in thread From: Qi Zheng @ 2026-01-16 11:06 UTC (permalink / raw) To: Philip Li; +Cc: kernel test robot, llvm, oe-kbuild-all On 1/16/26 6:41 PM, Philip Li wrote: > On Fri, Jan 16, 2026 at 04:16:31PM +0800, Qi Zheng wrote: >> Hi, >> >> The compilation problem I see in the report occurs under the following >> configuration: >> >> 1. enable CONFIG_WARN_CONTEXT_ANALYSIS_ALL >> 2. make CC=clang bzImage >> >> Could you please test whether the following fixes can resolve the >> compilation issue? > > Hi Zheng, is it ok to give a try to use the reproduce steps in the original > report [1] to verify the fix? As for now, we haven't support the auto verification > for the on demand request yet. OK, I found a Debian 12 machine and reproduced this compilation error with the following configuration: 1. enable CONFIG_WARN_CONTEXT_ANALYSIS_ALL 2. make CC=clang bzImage (clang version == 22) Thank you for reporting this issue! > > [1] https://download.01.org/0day-ci/archive/20260115/202601152057.xgusZpKm-lkp@intel.com/reproduce > >> >> Thanks! >> >> ``` >> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h >> index e0b84b109b7ac..f28c5ef9bf604 100644 >> --- a/include/linux/memcontrol.h >> +++ b/include/linux/memcontrol.h >> @@ -742,15 +742,9 @@ struct mem_cgroup *get_mem_cgroup_from_current(void); >> struct mem_cgroup *get_mem_cgroup_from_folio(struct folio *folio); >> >> struct lruvec *folio_lruvec_lock(struct folio *folio); >> - __acquires(&lruvec->lru_lock) >> - __acquires(rcu) >> struct lruvec *folio_lruvec_lock_irq(struct folio *folio); >> - __acquires(&lruvec->lru_lock) >> - __acquires(rcu) >> struct lruvec *folio_lruvec_lock_irqsave(struct folio *folio, >> unsigned long *flags); >> - __acquires(&lruvec->lru_lock) >> - __acquires(rcu) >> >> static inline >> struct mem_cgroup *mem_cgroup_from_css(struct cgroup_subsys_state *css){ >> @@ -1477,38 +1471,10 @@ static inline struct lruvec *parent_lruvec(struct >> lruvec *lruvec) >> return mem_cgroup_lruvec(memcg, lruvec_pgdat(lruvec)); >> } >> >> -static inline void lruvec_lock_irq(struct lruvec *lruvec) >> - __acquires(&lruvec->lru_lock) >> - __acquires(rcu) >> -{ >> - rcu_read_lock(); >> - spin_lock_irq(&lruvec->lru_lock); >> -} >> - >> -static inline void lruvec_unlock(struct lruvec *lruvec) >> - __releases(&lruvec->lru_lock) >> - __releases(rcu) >> -{ >> - spin_unlock(&lruvec->lru_lock); >> - rcu_read_unlock(); >> -} >> - >> -static inline void lruvec_unlock_irq(struct lruvec *lruvec) >> - __releases(&lruvec->lru_lock) >> - __releases(rcu) >> -{ >> - spin_unlock_irq(&lruvec->lru_lock); >> - rcu_read_unlock(); >> -} >> - >> -static inline void lruvec_unlock_irqrestore(struct lruvec *lruvec, >> - unsigned long flags) >> - __releases(&lruvec->lru_lock) >> - __releases(rcu) >> -{ >> - spin_unlock_irqrestore(&lruvec->lru_lock, flags); >> - rcu_read_unlock(); >> -} >> +void lruvec_lock_irq(struct lruvec *lruvec); >> +void lruvec_unlock(struct lruvec *lruvec); >> +void lruvec_unlock_irq(struct lruvec *lruvec); >> +void lruvec_unlock_irqrestore(struct lruvec *lruvec, unsigned long flags); >> >> /* Test requires a stable folio->memcg binding, see folio_memcg() */ >> static inline bool folio_matches_lruvec(struct folio *folio, >> diff --git a/include/linux/swap.h b/include/linux/swap.h >> index 4449d1f371a56..77a6a9fa11981 100644 >> --- a/include/linux/swap.h >> +++ b/include/linux/swap.h >> @@ -328,9 +328,7 @@ extern unsigned long totalreserve_pages; >> >> /* linux/mm/swap.c */ >> void lru_note_cost_unlock_irq(struct lruvec *lruvec, bool file, >> - unsigned int nr_io, unsigned int nr_rotated) >> - __releases(lruvec->lru_lock); >> - __releases(rcu) >> + unsigned int nr_io, unsigned int nr_rotated); >> void lru_note_cost_refault(struct folio *); >> void folio_add_lru(struct folio *); >> void folio_add_lru_vma(struct folio *, struct vm_area_struct *); >> diff --git a/mm/memcontrol.c b/mm/memcontrol.c >> index c303c483f55a4..8907c9ea33bbc 100644 >> --- a/mm/memcontrol.c >> +++ b/mm/memcontrol.c >> @@ -1313,6 +1313,39 @@ void mem_cgroup_scan_tasks(struct mem_cgroup *memcg, >> } >> } >> >> +void lruvec_lock_irq(struct lruvec *lruvec) >> + __acquires(&lruvec->lru_lock) >> + __acquires(rcu) >> +{ >> + rcu_read_lock(); >> + spin_lock_irq(&lruvec->lru_lock); >> +} >> + >> +void lruvec_unlock(struct lruvec *lruvec) >> + __releases(&lruvec->lru_lock) >> + __releases(rcu) >> +{ >> + spin_unlock(&lruvec->lru_lock); >> + rcu_read_unlock(); >> +} >> + >> +void lruvec_unlock_irq(struct lruvec *lruvec) >> + __releases(&lruvec->lru_lock) >> + __releases(rcu) >> +{ >> + spin_unlock_irq(&lruvec->lru_lock); >> + rcu_read_unlock(); >> +} >> + >> +void lruvec_unlock_irqrestore(struct lruvec *lruvec, >> + unsigned long flags) >> + __releases(&lruvec->lru_lock) >> + __releases(rcu) >> +{ >> + spin_unlock_irqrestore(&lruvec->lru_lock, flags); >> + rcu_read_unlock(); >> +} >> + >> /** >> * folio_lruvec_lock - Lock the lruvec for a folio. >> * @folio: Pointer to the folio. >> >> ``` >> >> On 1/15/26 8:34 PM, kernel test robot wrote: >>> Hi Qi, >>> >>> kernel test robot noticed the following build errors: >>> >>> [auto build test ERROR on next-20260114] >>> [cannot apply to akpm-mm/mm-everything brauner-vfs/vfs.all trace/for-next linus/master dennis-percpu/for-next v6.19-rc5 v6.19-rc4 v6.19-rc3 v6.19-rc5] >>> [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/Qi-Zheng/mm-memcontrol-remove-dead-code-of-checking-parent-memory-cgroup/20260114-193921 >>> base: next-20260114 >>> patch link: https://lore.kernel.org/r/0252f9acc29d4b1e9b8252dc003aff065c8ac1f6.1768389889.git.zhengqi.arch%40bytedance.com >>> patch subject: [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock >>> config: powerpc64-randconfig-002-20260115 (https://download.01.org/0day-ci/archive/20260115/202601152057.xgusZpKm-lkp@intel.com/config) >>> compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710) >>> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260115/202601152057.xgusZpKm-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/202601152057.xgusZpKm-lkp@intel.com/ >>> >>> All errors (new ones prefixed by >>): >>> >>> In file included from crypto/ahash.c:26: >>> In file included from include/net/netlink.h:6: >>> In file included from include/linux/netlink.h:9: >>> In file included from include/net/scm.h:9: >>> In file included from include/linux/security.h:35: >>> In file included from include/linux/bpf.h:32: >>>>> include/linux/memcontrol.h:772:14: error: use of undeclared identifier 'lruvec' >>> 772 | __acquires(&lruvec->lru_lock) >>> | ^~~~~~ >>> include/linux/memcontrol.h:773:13: error: use of undeclared identifier 'rcu' >>> 773 | __acquires(rcu) >>> | ^~~ >>> include/linux/memcontrol.h:775:14: error: use of undeclared identifier 'lruvec' >>> 775 | __acquires(&lruvec->lru_lock) >>> | ^~~~~~ >>> include/linux/memcontrol.h:776:13: error: use of undeclared identifier 'rcu' >>> 776 | __acquires(rcu) >>> | ^~~ >>> include/linux/memcontrol.h:779:14: error: use of undeclared identifier 'lruvec' >>> 779 | __acquires(&lruvec->lru_lock) >>> | ^~~~~~ >>> include/linux/memcontrol.h:780:13: error: use of undeclared identifier 'rcu' >>> 780 | __acquires(rcu) >>> | ^~~ >>> include/linux/memcontrol.h:1507:13: error: use of undeclared identifier 'rcu' >>> 1507 | __acquires(rcu) >>> | ^~~ >>> include/linux/memcontrol.h:1515:13: error: use of undeclared identifier 'rcu' >>> 1515 | __releases(rcu) >>> | ^~~ >>> include/linux/memcontrol.h:1523:13: error: use of undeclared identifier 'rcu' >>> 1523 | __releases(rcu) >>> | ^~~ >>> include/linux/memcontrol.h:1532:13: error: use of undeclared identifier 'rcu' >>> 1532 | __releases(rcu) >>> | ^~~ >>> In file included from crypto/ahash.c:26: >>> In file included from include/net/netlink.h:6: >>> In file included from include/linux/netlink.h:9: >>> In file included from include/net/scm.h:13: >>> In file included from include/net/compat.h:8: >>> include/linux/compat.h:454:22: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] >>> 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; >>> | ^ ~ >>> arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here >>> 18 | unsigned long sig[_NSIG_WORDS]; >>> | ^ >>> In file included from crypto/ahash.c:26: >>> In file included from include/net/netlink.h:6: >>> In file included from include/linux/netlink.h:9: >>> In file included from include/net/scm.h:13: >>> In file included from include/net/compat.h:8: >>> include/linux/compat.h:454:10: warning: array index 7 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] >>> 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; >>> | ^ ~ >>> include/linux/compat.h:130:2: note: array 'sig' declared here >>> 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; >>> | ^ >>> include/linux/compat.h:454:42: warning: array index 6 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] >>> 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; >>> | ^ ~ >>> include/linux/compat.h:130:2: note: array 'sig' declared here >>> 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; >>> | ^ >>> include/linux/compat.h:454:53: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] >>> 454 | case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3]; >>> | ^ ~ >>> arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here >>> 18 | unsigned long sig[_NSIG_WORDS]; >>> | ^ >>> In file included from crypto/ahash.c:26: >>> In file included from include/net/netlink.h:6: >>> In file included from include/linux/netlink.h:9: >>> In file included from include/net/scm.h:13: >>> In file included from include/net/compat.h:8: >>> include/linux/compat.h:456:22: warning: array index 2 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] >>> 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; >>> | ^ ~ >>> arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here >>> 18 | unsigned long sig[_NSIG_WORDS]; >>> | ^ >>> In file included from crypto/ahash.c:26: >>> In file included from include/net/netlink.h:6: >>> In file included from include/linux/netlink.h:9: >>> In file included from include/net/scm.h:13: >>> In file included from include/net/compat.h:8: >>> include/linux/compat.h:456:10: warning: array index 5 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] >>> 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; >>> | ^ ~ >>> include/linux/compat.h:130:2: note: array 'sig' declared here >>> 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; >>> | ^ >>> include/linux/compat.h:456:42: warning: array index 4 is past the end of the array (that has type 'compat_sigset_word[2]' (aka 'unsigned int[2]')) [-Warray-bounds] >>> 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; >>> | ^ ~ >>> include/linux/compat.h:130:2: note: array 'sig' declared here >>> 130 | compat_sigset_word sig[_COMPAT_NSIG_WORDS]; >>> | ^ >>> include/linux/compat.h:456:53: warning: array index 2 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds] >>> 456 | case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2]; >>> | ^ ~ >>> arch/powerpc/include/uapi/asm/signal.h:18:2: note: array 'sig' declared here >>> 18 | unsigned long sig[_NSIG_WORDS]; >>> | ^ >>> In file included from crypto/ahash.c:26: >>> In file included from include/net/netlink.h:6: >>> In file included from include/linux/netlink.h:9: >>> >>> >>> vim +/lruvec +772 include/linux/memcontrol.h >>> >>> 770 >>> 771 struct lruvec *folio_lruvec_lock(struct folio *folio); >>> > 772 __acquires(&lruvec->lru_lock) >>> 773 __acquires(rcu) >>> 774 struct lruvec *folio_lruvec_lock_irq(struct folio *folio); >>> 775 __acquires(&lruvec->lru_lock) >>> 776 __acquires(rcu) >>> 777 struct lruvec *folio_lruvec_lock_irqsave(struct folio *folio, >>> 778 unsigned long *flags); >>> 779 __acquires(&lruvec->lru_lock) >>> 780 __acquires(rcu) >>> 781 >>> >> ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock [not found] <0252f9acc29d4b1e9b8252dc003aff065c8ac1f6.1768389889.git.zhengqi.arch@bytedance.com> 2026-01-15 12:34 ` [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock kernel test robot @ 2026-01-16 6:29 ` kernel test robot 1 sibling, 0 replies; 5+ messages in thread From: kernel test robot @ 2026-01-16 6:29 UTC (permalink / raw) To: Qi Zheng; +Cc: llvm, oe-kbuild-all Hi Qi, kernel test robot noticed the following build warnings: [auto build test WARNING on next-20260115] [cannot apply to akpm-mm/mm-everything brauner-vfs/vfs.all trace/for-next linus/master dennis-percpu/for-next v6.19-rc5 v6.19-rc4 v6.19-rc3 v6.19-rc5] [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/Qi-Zheng/mm-memcontrol-remove-dead-code-of-checking-parent-memory-cgroup/20260115-224607 base: next-20260115 patch link: https://lore.kernel.org/r/0252f9acc29d4b1e9b8252dc003aff065c8ac1f6.1768389889.git.zhengqi.arch%40bytedance.com patch subject: [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock config: sparc64-allmodconfig (https://download.01.org/0day-ci/archive/20260116/202601161444.lDjWS5Wf-lkp@intel.com/config) compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260116/202601161444.lDjWS5Wf-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/202601161444.lDjWS5Wf-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from kernel/sched/core.c:16: In file included from include/linux/syscalls_api.h:1: In file included from include/linux/syscalls.h:95: In file included from include/trace/syscall.h:7: In file included from include/linux/trace_events.h:10: In file included from include/linux/perf_event.h:53: In file included from include/linux/security.h:35: In file included from include/linux/bpf.h:32: include/linux/memcontrol.h:772:14: error: use of undeclared identifier 'lruvec' 772 | __acquires(&lruvec->lru_lock) | ^~~~~~ include/linux/memcontrol.h:773:13: error: use of undeclared identifier 'rcu' 773 | __acquires(rcu) | ^~~ include/linux/memcontrol.h:775:14: error: use of undeclared identifier 'lruvec' 775 | __acquires(&lruvec->lru_lock) | ^~~~~~ include/linux/memcontrol.h:776:13: error: use of undeclared identifier 'rcu' 776 | __acquires(rcu) | ^~~ include/linux/memcontrol.h:779:14: error: use of undeclared identifier 'lruvec' 779 | __acquires(&lruvec->lru_lock) | ^~~~~~ include/linux/memcontrol.h:780:13: error: use of undeclared identifier 'rcu' 780 | __acquires(rcu) | ^~~ include/linux/memcontrol.h:1507:13: error: use of undeclared identifier 'rcu' 1507 | __acquires(rcu) | ^~~ include/linux/memcontrol.h:1515:13: error: use of undeclared identifier 'rcu' 1515 | __releases(rcu) | ^~~ include/linux/memcontrol.h:1523:13: error: use of undeclared identifier 'rcu' 1523 | __releases(rcu) | ^~~ include/linux/memcontrol.h:1532:13: error: use of undeclared identifier 'rcu' 1532 | __releases(rcu) | ^~~ In file included from kernel/sched/core.c:83: In file included from arch/sparc/include/asm/tlb.h:5: In file included from arch/sparc/include/asm/tlb_64.h:5: include/linux/swap.h:333:14: error: use of undeclared identifier 'rcu' 333 | __releases(rcu) | ^~~ >> kernel/sched/core.c:7772:12: warning: array index -1 is before the beginning of the array [-Warray-bounds] 7772 | preempt_modes[preempt_dynamic_mode] : "undef", | ^ ~~~~~~~~~~~~~~~~~~~~ kernel/sched/core.c:7747:1: note: array 'preempt_modes' declared here 7747 | const char *preempt_modes[] = { | ^ 1 warning and 11 errors generated. vim +7772 kernel/sched/core.c 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7750 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7751 const char *preempt_model_str(void) 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7752 { 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7753 bool brace = IS_ENABLED(CONFIG_PREEMPT_RT) && 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7754 (IS_ENABLED(CONFIG_PREEMPT_DYNAMIC) || 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7755 IS_ENABLED(CONFIG_PREEMPT_LAZY)); 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7756 static char buf[128]; 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7757 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7758 if (IS_ENABLED(CONFIG_PREEMPT_BUILD)) { 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7759 struct seq_buf s; 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7760 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7761 seq_buf_init(&s, buf, sizeof(buf)); 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7762 seq_buf_puts(&s, "PREEMPT"); 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7763 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7764 if (IS_ENABLED(CONFIG_PREEMPT_RT)) 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7765 seq_buf_printf(&s, "%sRT%s", 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7766 brace ? "_{" : "_", 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7767 brace ? "," : ""); 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7768 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7769 if (IS_ENABLED(CONFIG_PREEMPT_DYNAMIC)) { 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7770 seq_buf_printf(&s, "(%s)%s", 3ebb1b6522392f6 Thomas Weißschuh 2025-06-26 7771 preempt_dynamic_mode >= 0 ? 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 @7772 preempt_modes[preempt_dynamic_mode] : "undef", 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7773 brace ? "}" : ""); 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7774 return seq_buf_str(&s); 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7775 } 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7776 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7777 if (IS_ENABLED(CONFIG_PREEMPT_LAZY)) { 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7778 seq_buf_printf(&s, "LAZY%s", 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7779 brace ? "}" : ""); 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7780 return seq_buf_str(&s); 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7781 } 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7782 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7783 return seq_buf_str(&s); 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7784 } 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7785 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7786 if (IS_ENABLED(CONFIG_PREEMPT_VOLUNTARY_BUILD)) 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7787 return "VOLUNTARY"; 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7788 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7789 return "NONE"; 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7790 } 8bdc5daaa01e305 Sebastian Andrzej Siewior 2025-03-14 7791 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-01-16 11:07 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <0252f9acc29d4b1e9b8252dc003aff065c8ac1f6.1768389889.git.zhengqi.arch@bytedance.com>
2026-01-15 12:34 ` [PATCH v3 24/30] mm: memcontrol: prepare for reparenting LRU pages for lruvec lock kernel test robot
2026-01-16 8:16 ` Qi Zheng
2026-01-16 10:41 ` Philip Li
2026-01-16 11:06 ` Qi Zheng
2026-01-16 6:29 ` 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