On Thu 04-05-23 09:22:07, Suren Baghdasaryan wrote: [...] > > But even then I really detest an additional allocation from this context > > for every single allocation request. There GFP_NOWAIT allocation for > > steckdepot but that is at least cached and generally not allocating. > > This will allocate for every single allocation. > > A small correction here. alloc_tag_create_ctx() is used only for > allocations which we requested to capture the context. So, this last > sentence is true for allocations we specifically marked to capture the > context, not in general. Ohh, right. I have misunderstood that part. Slightly better, still potentially a scalability issue because hard to debug memory leaks usually use a generic caches (for kmalloc). So this might be still a lot of objects to track. > > There must be a better way. > > Yeah, agree, it would be good to avoid allocations in this path. Any > specific ideas on how to improve this? Pooling/caching perhaps? I > think kmem_cache does some of that already but maybe something else? The best I can come up with is a preallocated hash table to store references to stack depots with some additional data associated. The memory overhead could be still quite big but the hash tables could be resized lazily. -- Michal Hocko SUSE Labs