On Fri, Feb 14, 2020 at 4:04 PM Shakeel Butt <shakeelb@xxxxxxxxxx> wrote: > > On Fri, Feb 14, 2020 at 3:12 PM Eric Dumazet <edumazet@xxxxxxxxxx> wrote: > > > > On Fri, Feb 14, 2020 at 2:48 PM Shakeel Butt <shakeelb@xxxxxxxxxx> wrote: > > > > > > > > I think in the current code if the association is skipped at > > > allocation time then the sock will remain unassociated for its > > > lifetime. > > > > > > Maybe we can add the association in the later stages but it seems like > > > it is not a simple task i.e. edbe69ef2c90f ("Revert "defer call to > > > mem_cgroup_sk_alloc()""). > > > > Half TCP sockets are passive, so this means that 50% of TCP sockets > > won't be charged. > > (the socket cloning always happens from BH context) > > > > I think this deserves a comment in the changelog or documentation, > > otherwise some people might think > > using memcg will make them safe. > > Thanks I will update the changelog. Also is inet_csk_accept() the > right place for delayed cgroup/memcg binding (if we decide to do > that). I am wondering if we can force charge the memcg during late > binding to cater the issue fixed in edbe69ef2c90f. > Yes, this is exactly why accept() would be the natural choice. You do not want to test/change the binding at sendmsg()/recvmsg() time, right ?