On 8/28/25 10:01, Vlastimil Babka wrote: > On 8/28/25 09:43, Thorsten Leemhuis wrote: >> On 27.08.25 10:26, Vlastimil Babka wrote: >>> Specifying a non-zero value for a new struct kmem_cache_args field >>> sheaf_capacity will setup a caching layer of percpu arrays called >>> sheaves of given capacity for the created cache. >>> >>> Allocations from the cache will allocate via the percpu sheaves (main or >>> spare) as long as they have no NUMA node preference. Frees will also >>> put the object back into one of the sheaves. >>> [...] >> >> This patch showed up in linux-next today and from a *quick* glance at >> things I suspect it might be the reason why my daily next rpm builds for >> Fedora failed today like this: > > Hi, thanks for the report. >> "" >> In file included from ./include/linux/spinlock.h:63, >> from ./include/linux/mmzone.h:8, >> from ./include/linux/gfp.h:7, >> from ./include/linux/mm.h:7, >> from mm/slub.c:13: >> mm/slub.c: In function ‘__pcs_replace_empty_main’: >> mm/slub.c:4727:64: error: ‘local_trylock_t’ {aka ‘__seg_gs struct spinlock’} >> has no member named ‘llock’; did you mean ‘lock’? >> 4727 | >> lockdep_assert_held(this_cpu_ptr(&s->cpu_sheaves->lock.llock)); >> | ^~~~~ >> ./include/linux/lockdep.h:392:61: note: in definition of macro >> ‘lockdep_assert_held’ >> 392 | #define lockdep_assert_held(l) do { (void)(l); } >> while (0) >> | ^ >> [...] >> mm/slub.c:5653:29: note: in expansion of macro ‘this_cpu_ptr’ >> 5653 | >> lockdep_assert_held(this_cpu_ptr(&s->cpu_sheaves->lock.llock)); >> | ^~~~~~~~~~~~ >> make[3]: *** [scripts/Makefile.build:287: mm/slub.o] Error 1 >> make[2]: *** [scripts/Makefile.build:556: mm] Error 2 >> make[2]: *** Waiting for unfinished jobs.... >> make[1]: *** >> [/builddir/build/BUILD/kernel-6.17.0-build/kernel-next-20250828/linux-6.17.0-0.0.next.20250828.432.vanilla.fc44.x86_64/Makefile:2017: >> .] Error 2 >> make: *** [Makefile:256: __sub-make] Error 2 >> "" >> >> Full log: >> https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/next/fedora-rawhide-x86_64/09498568-next-next-all/builder-live.log.gz > > Oh so I assume the .config here has both LOCKDEP and PREEMPT_RT? > I tried to make lockdep_assert_held() with trylock but forgot about the RT > difference. The solution is Alexei's patch > > https://lore.kernel.org/all/20250718021646.73353-2- > alexei.starovoi...@gmail.com/ > > Wonder if I can just fast-track it to here from that series?
Did that for tomorrow's -next