Re: [PATCH v4] memcg: add charging of already allocated slab objects
From: Vlastimil Babka <hidden>
Date: 2024-09-09 07:59:20
Also in:
cgroups, linux-mm, lkml
From: Vlastimil Babka <hidden>
Date: 2024-09-09 07:59:20
Also in:
cgroups, linux-mm, lkml
On 9/6/24 19:38, Yosry Ahmed wrote:
quoted
But in case of kmalloc() the allocation must have been still attempted with __GFP_ACCOUNT so a kmalloc-cg cache is used even if the charging fails.It is still possible that the initial allocation did not have __GFP_ACCOUNT, but not from a KMALLOC_NORMAL cache (e.g. KMALLOC_DMA or KMALLOC_RECLAIM). In this case kmem_cache_charge() should still work, right?
Yeah it would work, but that's rather a corner case implementation detail so it's better to just require __GFP_ACCOUNT for kmalloc() in the comment.
quoted
If there's another usage for kmem_cache_charge() where the memcg is available but we don't want to charge immediately on purpose (such as the Linus' idea for struct file), we might need to find another way to tell kmalloc() to use the kmalloc-cg cache but not charge immediately...Can we just use a dedicated kmem_cache for this instead?
Right, as Shakeel mentioned, that would be the case of struct file. If all such cases in the future are fine with dedicated cache (i.e. not variable sized allocations), it should be fine.