From: kernel test robot <lkp@intel.com>
To: Harry Yoo <harry@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [harry:slab-allow-runtime-parameter-tuning-rfc-v1r1-wip 6/6] mm/slub.c:3173:2: error: member reference type 'void' is not a pointer
Date: Wed, 13 May 2026 19:48:26 +0800 [thread overview]
Message-ID: <202605131900.xMLYUDLG-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/harry/linux.git slab-allow-runtime-parameter-tuning-rfc-v1r1-wip
head: 10c188407341817c6baf9dad9c788928f8387800
commit: 10c188407341817c6baf9dad9c788928f8387800 [6/6] mm/slab: allow changing sheaf_capacity at runtime
config: arm64-randconfig-004-20260513 (https://download.01.org/0day-ci/archive/20260513/202605131900.xMLYUDLG-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260513/202605131900.xMLYUDLG-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/202605131900.xMLYUDLG-lkp@intel.com/
All errors (new ones prefixed by >>):
mm/slub.c:3173:44: error: no member named 'cache' in 'struct slab_sheaf'
3173 | lockdep_assert_held(this_cpu_ptr(&(sheaf->cache)->cpu_sheaves->lock));
| ~~~~~ ^
include/linux/percpu-defs.h:252:20: note: expanded from macro 'this_cpu_ptr'
252 | __verify_pcpu_ptr(ptr); \
| ^~~
include/linux/percpu-defs.h:221:47: note: expanded from macro '__verify_pcpu_ptr'
221 | const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \
| ^~~
include/linux/lockdep.h:285:38: note: expanded from macro 'lockdep_assert_held'
285 | do { lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD); __assume_ctx_lock(l); } while (0)
| ^
include/linux/lockdep.h:252:47: note: expanded from macro 'lockdep_is_held'
252 | #define lockdep_is_held(lock) lock_is_held(&(lock)->dep_map)
| ^~~~
include/linux/lockdep.h:279:32: note: expanded from macro 'lockdep_assert'
279 | do { WARN_ON(debug_locks && !(cond)); } while (0)
| ^~~~
include/asm-generic/bug.h:205:25: note: expanded from macro 'WARN_ON'
205 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
mm/slub.c:3173:44: error: no member named 'cache' in 'struct slab_sheaf'
3173 | lockdep_assert_held(this_cpu_ptr(&(sheaf->cache)->cpu_sheaves->lock));
| ~~~~~ ^
include/linux/percpu-defs.h:253:19: note: expanded from macro 'this_cpu_ptr'
253 | SHIFT_PERCPU_PTR(ptr, my_cpu_offset); \
| ^~~
include/linux/percpu-defs.h:235:24: note: expanded from macro 'SHIFT_PERCPU_PTR'
235 | RELOC_HIDE(PERCPU_PTR(__p), (__offset))
| ^~~
include/linux/percpu-defs.h:226:19: note: expanded from macro 'PERCPU_PTR'
226 | (TYPEOF_UNQUAL(*(__p)) __force __kernel *)((__force unsigned long)(__p))
| ^~~
note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/lockdep.h:252:47: note: expanded from macro 'lockdep_is_held'
252 | #define lockdep_is_held(lock) lock_is_held(&(lock)->dep_map)
| ^~~~
include/linux/lockdep.h:279:32: note: expanded from macro 'lockdep_assert'
279 | do { WARN_ON(debug_locks && !(cond)); } while (0)
| ^~~~
include/asm-generic/bug.h:205:25: note: expanded from macro 'WARN_ON'
205 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
mm/slub.c:3173:44: error: no member named 'cache' in 'struct slab_sheaf'
3173 | lockdep_assert_held(this_cpu_ptr(&(sheaf->cache)->cpu_sheaves->lock));
| ~~~~~ ^
include/linux/percpu-defs.h:253:19: note: expanded from macro 'this_cpu_ptr'
253 | SHIFT_PERCPU_PTR(ptr, my_cpu_offset); \
| ^~~
include/linux/percpu-defs.h:235:24: note: expanded from macro 'SHIFT_PERCPU_PTR'
235 | RELOC_HIDE(PERCPU_PTR(__p), (__offset))
| ^~~
include/linux/percpu-defs.h:226:69: note: expanded from macro 'PERCPU_PTR'
226 | (TYPEOF_UNQUAL(*(__p)) __force __kernel *)((__force unsigned long)(__p))
| ^~~
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/lockdep.h:252:47: note: expanded from macro 'lockdep_is_held'
252 | #define lockdep_is_held(lock) lock_is_held(&(lock)->dep_map)
| ^~~~
include/linux/lockdep.h:279:32: note: expanded from macro 'lockdep_assert'
279 | do { WARN_ON(debug_locks && !(cond)); } while (0)
| ^~~~
include/asm-generic/bug.h:205:25: note: expanded from macro 'WARN_ON'
205 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
>> mm/slub.c:3173:2: error: member reference type 'void' is not a pointer
3173 | lockdep_assert_held(this_cpu_ptr(&(sheaf->cache)->cpu_sheaves->lock));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:285:22: note: expanded from macro 'lockdep_assert_held'
285 | do { lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD); __assume_ctx_lock(l); } while (0)
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:252:54: note: expanded from macro 'lockdep_is_held'
252 | #define lockdep_is_held(lock) lock_is_held(&(lock)->dep_map)
| ^
include/linux/lockdep.h:279:32: note: expanded from macro 'lockdep_assert'
279 | do { WARN_ON(debug_locks && !(cond)); } while (0)
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
include/asm-generic/bug.h:205:25: note: expanded from macro 'WARN_ON'
205 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
mm/slub.c:3173:44: error: no member named 'cache' in 'struct slab_sheaf'
3173 | lockdep_assert_held(this_cpu_ptr(&(sheaf->cache)->cpu_sheaves->lock));
| ~~~~~ ^
include/linux/percpu-defs.h:252:20: note: expanded from macro 'this_cpu_ptr'
252 | __verify_pcpu_ptr(ptr); \
| ^~~
include/linux/percpu-defs.h:221:47: note: expanded from macro '__verify_pcpu_ptr'
221 | const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \
| ^~~
include/linux/lockdep.h:285:84: note: expanded from macro 'lockdep_assert_held'
285 | do { lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD); __assume_ctx_lock(l); } while (0)
| ^
include/linux/compiler-context-analysis.h:172:47: note: expanded from macro '__assume_ctx_lock'
172 | # define __assume_ctx_lock(var) do { (void)(var); } while (0)
| ^~~
mm/slub.c:3173:44: error: no member named 'cache' in 'struct slab_sheaf'
3173 | lockdep_assert_held(this_cpu_ptr(&(sheaf->cache)->cpu_sheaves->lock));
| ~~~~~ ^
include/linux/percpu-defs.h:253:19: note: expanded from macro 'this_cpu_ptr'
253 | SHIFT_PERCPU_PTR(ptr, my_cpu_offset); \
| ^~~
include/linux/percpu-defs.h:235:24: note: expanded from macro 'SHIFT_PERCPU_PTR'
235 | RELOC_HIDE(PERCPU_PTR(__p), (__offset))
| ^~~
include/linux/percpu-defs.h:226:19: note: expanded from macro 'PERCPU_PTR'
226 | (TYPEOF_UNQUAL(*(__p)) __force __kernel *)((__force unsigned long)(__p))
| ^~~
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler.h:152:40: note: expanded from macro 'RELOC_HIDE'
152 | # define RELOC_HIDE(ptr, off) ((typeof(ptr))((unsigned long)(ptr) + (off)))
| ^~~
include/linux/lockdep.h:285:84: note: expanded from macro 'lockdep_assert_held'
285 | do { lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD); __assume_ctx_lock(l); } while (0)
| ^
include/linux/compiler-context-analysis.h:172:47: note: expanded from macro '__assume_ctx_lock'
172 | # define __assume_ctx_lock(var) do { (void)(var); } while (0)
| ^~~
mm/slub.c:3173:44: error: no member named 'cache' in 'struct slab_sheaf'
3173 | lockdep_assert_held(this_cpu_ptr(&(sheaf->cache)->cpu_sheaves->lock));
| ~~~~~ ^
include/linux/percpu-defs.h:253:19: note: expanded from macro 'this_cpu_ptr'
253 | SHIFT_PERCPU_PTR(ptr, my_cpu_offset); \
| ^~~
include/linux/percpu-defs.h:235:24: note: expanded from macro 'SHIFT_PERCPU_PTR'
235 | RELOC_HIDE(PERCPU_PTR(__p), (__offset))
| ^~~
include/linux/percpu-defs.h:226:69: note: expanded from macro 'PERCPU_PTR'
226 | (TYPEOF_UNQUAL(*(__p)) __force __kernel *)((__force unsigned long)(__p))
| ^~~
include/linux/compiler.h:152:40: note: expanded from macro 'RELOC_HIDE'
152 | # define RELOC_HIDE(ptr, off) ((typeof(ptr))((unsigned long)(ptr) + (off)))
| ^~~
include/linux/lockdep.h:285:84: note: expanded from macro 'lockdep_assert_held'
285 | do { lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD); __assume_ctx_lock(l); } while (0)
| ^
include/linux/compiler-context-analysis.h:172:47: note: expanded from macro '__assume_ctx_lock'
172 | # define __assume_ctx_lock(var) do { (void)(var); } while (0)
| ^~~
mm/slub.c:3187:44: error: no member named 'cache' in 'struct slab_sheaf'
3187 | lockdep_assert_held(this_cpu_ptr(&(sheaf->cache)->cpu_sheaves->lock));
| ~~~~~ ^
include/linux/percpu-defs.h:252:20: note: expanded from macro 'this_cpu_ptr'
252 | __verify_pcpu_ptr(ptr); \
| ^~~
include/linux/percpu-defs.h:221:47: note: expanded from macro '__verify_pcpu_ptr'
221 | const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \
| ^~~
include/linux/lockdep.h:285:38: note: expanded from macro 'lockdep_assert_held'
285 | do { lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD); __assume_ctx_lock(l); } while (0)
| ^
include/linux/lockdep.h:252:47: note: expanded from macro 'lockdep_is_held'
252 | #define lockdep_is_held(lock) lock_is_held(&(lock)->dep_map)
| ^~~~
include/linux/lockdep.h:279:32: note: expanded from macro 'lockdep_assert'
279 | do { WARN_ON(debug_locks && !(cond)); } while (0)
| ^~~~
include/asm-generic/bug.h:205:25: note: expanded from macro 'WARN_ON'
205 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
mm/slub.c:3187:44: error: no member named 'cache' in 'struct slab_sheaf'
3187 | lockdep_assert_held(this_cpu_ptr(&(sheaf->cache)->cpu_sheaves->lock));
| ~~~~~ ^
include/linux/percpu-defs.h:253:19: note: expanded from macro 'this_cpu_ptr'
253 | SHIFT_PERCPU_PTR(ptr, my_cpu_offset); \
| ^~~
include/linux/percpu-defs.h:235:24: note: expanded from macro 'SHIFT_PERCPU_PTR'
vim +/void +3173 mm/slub.c
3162
3163 /*
3164 * The following two functions are used mainly in cases where we have to undo an
3165 * intended action due to a race or cpu migration. Thus they do not check the
3166 * empty or full sheaf limits for simplicity.
3167 */
3168
3169 static void barn_put_empty_sheaf(struct node_barn *barn, struct slab_sheaf *sheaf)
3170 {
3171 unsigned long flags;
3172
> 3173 lockdep_assert_held(this_cpu_ptr(&(sheaf->cache)->cpu_sheaves->lock));
3174
3175 spin_lock_irqsave(&barn->lock, flags);
3176
3177 list_add(&sheaf->barn_list, &barn->sheaves_empty);
3178 barn->nr_empty++;
3179
3180 spin_unlock_irqrestore(&barn->lock, flags);
3181 }
3182
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2026-05-13 11:49 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202605131900.xMLYUDLG-lkp@intel.com \
--to=lkp@intel.com \
--cc=harry@kernel.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.