On Wed, Jan 31, 2024 at 2:20 PM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > I was looking into moving eventfs_inode into a slab, and after cutting and > pasting the tracefs allocator: > > tracefs_inode_cachep = kmem_cache_create("tracefs_inode_cache", > sizeof(struct tracefs_inode), > 0, (SLAB_RECLAIM_ACCOUNT| > SLAB_MEM_SPREAD| > SLAB_ACCOUNT), > init_once); > > I figured I should know what those slab flags mean. I also looked at what > others in fs use for their slabs. The above is rather common (which I > probably just copied from another file system), but I wanted to know what > they are for. > > When I got to SLAB_MEM_SPREAD, I found that it's a common flag and there's > a lot of caches that just set that and nothing else. > > But I couldn't find how it was used. > > Then I found this commit: > > 16a1d968358a ("mm/slab: remove mm/slab.c and slab_def.h") > > Which I think removed the only use case of SLAB_MEM_SPREAD. > > $ git grep SLAB_MEM_SPREAD mm > mm/slab.h: SLAB_MEM_SPREAD | \ > > That's all I find in the mm directory. > > Is it obsolete now? Can we delete it? Maybe there's other SLAB_* flags that > are no longer used. I don't know, I haven't audited them. Perhaps cpuset_do_slab_mem_spread() as well.