Re: [PATCH] memcg: net: do not associate sock with unrelated memcg
From: Roman Gushchin <hidden>
Date: 2020-02-14 21:47:46
Also in:
linux-mm, lkml
From: Roman Gushchin <hidden>
Date: 2020-02-14 21:47:46
Also in:
linux-mm, lkml
Hello, Shakeel! On Thu, Feb 13, 2020 at 11:12:33PM -0800, Shakeel Butt wrote:
We are testing network memory accounting in our setup and noticed inconsistent network memory usage and often unrelated memcgs network usage correlates with testing workload. On further inspection, it seems like mem_cgroup_sk_alloc() is broken in irq context specially for cgroup v1.
A great catch!
mem_cgroup_sk_alloc() can be called in irq context and kind of assumes that it can only happen from sk_clone_lock() and the source sock object has already associated memcg. However in cgroup v1, where network memory accounting is opt-in, the source sock can be not associated with any memcg and the new cloned sock can get associated with unrelated interrupted memcg. Cgroup v2 can also suffer if the source sock object was created by process in the root memcg or if sk_alloc() is called in irq context.
Do you mind sharing a call trace? Also, shouldn't cgroup_sk_alloc() be changed in a similar way? Thanks! Roman