* Re: [PATCH v3] cgroup: memcg: net: do not associate sock with unrelated cgroup [not found] <20200221014604.126118-1-shakeelb@google.com> @ 2020-02-26 19:07 ` David Miller 2020-02-26 20:02 ` Shakeel Butt 0 siblings, 1 reply; 2+ messages in thread From: David Miller @ 2020-02-26 19:07 UTC (permalink / raw) To: shakeelb Cc: edumazet, guro, hannes, tj, gthelen, mhocko, vdavydov.dev, akpm, cgroups, linux-mm, linux-kernel, netdev From: Shakeel Butt <shakeelb@google.com> Date: Thu, 20 Feb 2020 17:46:04 -0800 > We are testing network memory accounting in our setup and noticed > inconsistent network memory usage and often unrelated cgroups network > usage correlates with testing workload. On further inspection, it > seems like mem_cgroup_sk_alloc() and cgroup_sk_alloc() are broken in > IRQ context specially for cgroup v1. > > mem_cgroup_sk_alloc() and cgroup_sk_alloc() can be called in IRQ context > and kind of assumes that this can only happen from sk_clone_lock() > and the source sock object has already associated cgroup. However in > cgroup v1, where network memory accounting is opt-in, the source sock > can be unassociated with any cgroup and the new cloned sock can get > associated with unrelated interrupted cgroup. > > Cgroup v2 can also suffer if the source sock object was created by > process in the root cgroup or if sk_alloc() is called in IRQ context. > The fix is to just do nothing in interrupt. > > WARNING: Please note that about half of the TCP sockets are allocated > from the IRQ context, so, memory used by such sockets will not be > accouted by the memcg. Then if we do this then we have to have some kind of subsequent change to attach these sockets to the correct cgroup, right? ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH v3] cgroup: memcg: net: do not associate sock with unrelated cgroup 2020-02-26 19:07 ` [PATCH v3] cgroup: memcg: net: do not associate sock with unrelated cgroup David Miller @ 2020-02-26 20:02 ` Shakeel Butt 0 siblings, 0 replies; 2+ messages in thread From: Shakeel Butt @ 2020-02-26 20:02 UTC (permalink / raw) To: David Miller Cc: Eric Dumazet, Roman Gushchin, Johannes Weiner, Tejun Heo, Greg Thelen, Michal Hocko, Vladimir Davydov, Andrew Morton, Cgroups, Linux MM, LKML, netdev On Wed, Feb 26, 2020 at 11:07 AM David Miller <davem@davemloft.net> wrote: > > From: Shakeel Butt <shakeelb@google.com> > Date: Thu, 20 Feb 2020 17:46:04 -0800 > > > We are testing network memory accounting in our setup and noticed > > inconsistent network memory usage and often unrelated cgroups network > > usage correlates with testing workload. On further inspection, it > > seems like mem_cgroup_sk_alloc() and cgroup_sk_alloc() are broken in > > IRQ context specially for cgroup v1. > > > > mem_cgroup_sk_alloc() and cgroup_sk_alloc() can be called in IRQ context > > and kind of assumes that this can only happen from sk_clone_lock() > > and the source sock object has already associated cgroup. However in > > cgroup v1, where network memory accounting is opt-in, the source sock > > can be unassociated with any cgroup and the new cloned sock can get > > associated with unrelated interrupted cgroup. > > > > Cgroup v2 can also suffer if the source sock object was created by > > process in the root cgroup or if sk_alloc() is called in IRQ context. > > The fix is to just do nothing in interrupt. > > > > WARNING: Please note that about half of the TCP sockets are allocated > > from the IRQ context, so, memory used by such sockets will not be > > accouted by the memcg. > > Then if we do this then we have to have some kind of subsequent change > to attach these sockets to the correct cgroup, right? Currently we can potentially charge wrong cgroup. With this patch that will be fixed but potentially half of sockets remain unaccounted. I have a followup (incomplete) patch [1] to fix that. I will send the next version soon. [1] https://lore.kernel.org/linux-mm/20200222010456.40635-1-shakeelb@google.com/ ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-02-26 20:02 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20200221014604.126118-1-shakeelb@google.com>
2020-02-26 19:07 ` [PATCH v3] cgroup: memcg: net: do not associate sock with unrelated cgroup David Miller
2020-02-26 20:02 ` Shakeel Butt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox