net, mm: account sock objects to kmemcg
authorShakeel Butt <shakeelb@google.com>
Wed, 27 Jun 2018 22:16:42 +0000 (15:16 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 29 Jun 2018 12:56:27 +0000 (21:56 +0900)
commite699e2c6a654ff8d7303f5297ab5dd83da7b23e0
tree6208cad6013a78ff37495cd6080610ebbadcd6ba
parent4205c88eaf17b5f3ee30032d68df55cd5d9077a1
net, mm: account sock objects to kmemcg

Currently the kernel accounts the memory for network traffic through
mem_cgroup_[un]charge_skmem() interface. However the memory accounted
only includes the truesize of sk_buff which does not include the size of
sock objects. In our production environment, with opt-out kmem
accounting, the sock kmem caches (TCP[v6], UDP[v6], RAW[v6], UNIX) are
among the top most charged kmem caches and consume a significant amount
of memory which can not be left as system overhead. So, this patch
converts the kmem caches of all sock objects to SLAB_ACCOUNT.

Signed-off-by: Shakeel Butt <shakeelb@google.com>
Suggested-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/sock.c