On Mon, Jun 28, 2021 at 11:40:39AM +0200, "Enrico Weigelt, metux IT consult" <lkml@xxxxxxxxx> wrote: > Could you please tell a bit more how this really works ? > (maybe some pointers to the code) When cgroup's consumption is about to cross the configured limit, reclaim is started https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/mm/memcontrol.c?id=62fb9874f5da54fdb243003b386128037319b219#n2579 that may evict old entries https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/mm/vmscan.c?id=62fb9874f5da54fdb243003b386128037319b219#n2852 and if there's still no success freeing some space the dentry allocation can fail https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/mm/slab.h?id=62fb9874f5da54fdb243003b386128037319b219#n277 (This describes just one code path, the subject isn't always a dentry.) > I'm curios what happens if those cache objects are used by different > cgroups - are they accounted to multiple times (once per cgroup) ? > What happens when one cgroup using some cache object reaching its limit, > wile another one does not ? That's explained here https://www.kernel.org/doc/html/v5.13/admin-guide/cgroup-v2.html#memory-ownership Michal
Attachment:
signature.asc
Description: Digital signature