On Wed, May 25, 2022 at 04:07:24PM -0700, Linus Torvalds wrote: > On Wed, May 25, 2022 at 3:01 PM Vlastimil Babka <vbabka@xxxxxxx> wrote: > > > > Yes, running rcutorture will trigger that stackdepot allocation, but as > > that's in RCU debugging part of config, I considered it in the same > > category as enabling slub debugging. > > Yeah, I don't think rcutorture is a problem per se, it was more an > example of a random interaction that doesn't actually seem to make > much sense. Creating cache with SLAB_STORE_USER is (currently) done in rcutorture. SLAB_STORE_USER means "we're going to track every user of this slab cache" so IMO it should not be done if not debugging. Otherwise stackdepot will be used only when user passes slub_debug boot parameter. > As far as I can tell, there is nothing in rcutorture that actually > wants that stack trace, and it seems to be doing just a test of the > object dumping working. dumping an arbitrary object may call kmem_dump_obj(), which will dump slab objects and thus printing where it was allocated. > > So it was more the oddity and randomness of it that made me go > "Whaah?" There might be others hiding elsewhere, that rcutorture use > just happened to use the flag explicitly. > > Linus AFAIK only 1) creating cache with SLAB_STORE_USER or 2) passing slub_debug make kernel allocate hash table for stackdepot. This do not look that odd too me. But I agree not asking size of hash table to user and by 1) using rhashtables or 2) deciding size of hash table at runtime would be better :)