llvm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [vbabka:slub-percpu-sheaves-v6r0 3/15] mm/slub.c:4622:2: error: no member named 'dep_map' in 'local_trylock_t'
@ 2025-08-27  0:11 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-08-27  0:11 UTC (permalink / raw)
  To: Vlastimil Babka; +Cc: llvm, oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/linux.git slub-percpu-sheaves-v6r0
head:   849dd5f00d4107b14da6fdd07b026e8950a3c763
commit: af6e1c57c858adcf8b0521760981afd9149b206e [3/15] slab: add opt-in caching layer of percpu sheaves
config: i386-buildonly-randconfig-004-20250827 (https://download.01.org/0day-ci/archive/20250827/202508270822.YcObEv8L-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250827/202508270822.YcObEv8L-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/202508270822.YcObEv8L-lkp@intel.com/

All errors (new ones prefixed by >>):

>> mm/slub.c:4622:2: error: no member named 'dep_map' in 'local_trylock_t'
    4622 |         lockdep_assert_held(this_cpu_ptr(&s->cpu_sheaves->lock));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/lockdep.h:285:17: note: expanded from macro 'lockdep_assert_held'
     285 |         lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD)
         |         ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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:171:25: note: expanded from macro 'WARN_ON'
     171 |         int __ret_warn_on = !!(condition);                              \
         |                                ^~~~~~~~~
   mm/slub.c:5236:2: error: no member named 'dep_map' in 'local_trylock_t'
    5236 |         lockdep_assert_held(this_cpu_ptr(&s->cpu_sheaves->lock));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/lockdep.h:285:17: note: expanded from macro 'lockdep_assert_held'
     285 |         lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD)
         |         ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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:171:25: note: expanded from macro 'WARN_ON'
     171 |         int __ret_warn_on = !!(condition);                              \
         |                                ^~~~~~~~~
   mm/slub.c:5285:2: error: no member named 'dep_map' in 'local_trylock_t'
    5285 |         lockdep_assert_held(this_cpu_ptr(&s->cpu_sheaves->lock));
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/lockdep.h:285:17: note: expanded from macro 'lockdep_assert_held'
     285 |         lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD)
         |         ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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:171:25: note: expanded from macro 'WARN_ON'
     171 |         int __ret_warn_on = !!(condition);                              \
         |                                ^~~~~~~~~
   3 errors generated.


vim +4622 mm/slub.c

  4606	
  4607	/*
  4608	 * Replace the empty main sheaf with a (at least partially) full sheaf.
  4609	 *
  4610	 * Must be called with the cpu_sheaves local lock locked. If successful, returns
  4611	 * the pcs pointer and the local lock locked (possibly on a different cpu than
  4612	 * initially called). If not successful, returns NULL and the local lock
  4613	 * unlocked.
  4614	 */
  4615	static struct slub_percpu_sheaves *
  4616	__pcs_replace_empty_main(struct kmem_cache *s, struct slub_percpu_sheaves *pcs, gfp_t gfp)
  4617	{
  4618		struct slab_sheaf *empty = NULL;
  4619		struct slab_sheaf *full;
  4620		bool can_alloc;
  4621	
> 4622		lockdep_assert_held(this_cpu_ptr(&s->cpu_sheaves->lock));
  4623	
  4624		if (pcs->spare && pcs->spare->size > 0) {
  4625			swap(pcs->main, pcs->spare);
  4626			return pcs;
  4627		}
  4628	
  4629		full = barn_replace_empty_sheaf(pcs->barn, pcs->main);
  4630	
  4631		if (full) {
  4632			stat(s, BARN_GET);
  4633			pcs->main = full;
  4634			return pcs;
  4635		}
  4636	
  4637		stat(s, BARN_GET_FAIL);
  4638	
  4639		can_alloc = gfpflags_allow_blocking(gfp);
  4640	
  4641		if (can_alloc) {
  4642			if (pcs->spare) {
  4643				empty = pcs->spare;
  4644				pcs->spare = NULL;
  4645			} else {
  4646				empty = barn_get_empty_sheaf(pcs->barn);
  4647			}
  4648		}
  4649	
  4650		local_unlock(&s->cpu_sheaves->lock);
  4651	
  4652		if (!can_alloc)
  4653			return NULL;
  4654	
  4655		if (empty) {
  4656			if (!refill_sheaf(s, empty, gfp)) {
  4657				full = empty;
  4658			} else {
  4659				/*
  4660				 * we must be very low on memory so don't bother
  4661				 * with the barn
  4662				 */
  4663				free_empty_sheaf(s, empty);
  4664			}
  4665		} else {
  4666			full = alloc_full_sheaf(s, gfp);
  4667		}
  4668	
  4669		if (!full)
  4670			return NULL;
  4671	
  4672		/*
  4673		 * we can reach here only when gfpflags_allow_blocking
  4674		 * so this must not be an irq
  4675		 */
  4676		local_lock(&s->cpu_sheaves->lock);
  4677		pcs = this_cpu_ptr(s->cpu_sheaves);
  4678	
  4679		/*
  4680		 * If we are returning empty sheaf, we either got it from the
  4681		 * barn or had to allocate one. If we are returning a full
  4682		 * sheaf, it's due to racing or being migrated to a different
  4683		 * cpu. Breaching the barn's sheaf limits should be thus rare
  4684		 * enough so just ignore them to simplify the recovery.
  4685		 */
  4686	
  4687		if (pcs->main->size == 0) {
  4688			barn_put_empty_sheaf(pcs->barn, pcs->main);
  4689			pcs->main = full;
  4690			return pcs;
  4691		}
  4692	
  4693		if (!pcs->spare) {
  4694			pcs->spare = full;
  4695			return pcs;
  4696		}
  4697	
  4698		if (pcs->spare->size == 0) {
  4699			barn_put_empty_sheaf(pcs->barn, pcs->spare);
  4700			pcs->spare = full;
  4701			return pcs;
  4702		}
  4703	
  4704		barn_put_full_sheaf(pcs->barn, full);
  4705		stat(s, BARN_PUT);
  4706	
  4707		return pcs;
  4708	}
  4709	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-08-27  0:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-27  0:11 [vbabka:slub-percpu-sheaves-v6r0 3/15] mm/slub.c:4622:2: error: no member named 'dep_map' in 'local_trylock_t' 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;
as well as URLs for NNTP newsgroup(s).