Thread (3 messages) 3 messages, 2 authors, 2020-10-12

Re: [External] Re: [PATCH] mm: memcontrol: localize mem_cgroup_sockets_enabled() check

From: Muchun Song <hidden>
Date: 2020-10-12 16:05:23
Also in: cgroups, linux-mm, lkml

On Mon, Oct 12, 2020 at 9:59 PM Johannes Weiner [off-list ref] wrote:
On Sat, Oct 10, 2020 at 06:45:21PM +0800, Muchun Song wrote:
quoted
Move the mem_cgroup_sockets_enabled() checks into memcg socket charge
or uncharge functions, so the users don't have to explicitly check that
condition.

This is purely code cleanup patch without any functional change. But
move the sk_memcg member of the sock structure to the CONFIG_MEMCG
scope.

Signed-off-by: Muchun Song <redacted>
---
 include/linux/memcontrol.h      | 78 ++++++++++++++++++++++++++-------
 include/net/sock.h              |  5 ++-
 include/net/tcp.h               |  3 +-
 mm/memcontrol.c                 | 43 +++++++++++++-----
 net/core/sock.c                 | 15 +++----
 net/ipv4/inet_connection_sock.c |  6 +--
 net/ipv4/tcp_output.c           |  3 +-
 7 files changed, 111 insertions(+), 42 deletions(-)
Hm, this is almost 3 times as much code.

The sk_memcg saving on !CONFIG_MEMCG is somewhat nice, but it's not
clear how many users would benefit here. And it adds ifdefs in code.
The 'ifdefs in code' means the initialization of sk_memcg in the sk_clone_lock?
If yes, we can add a new inline initialization function to avoid this.
Also memcg code now has to know about struct sock.
Without this patch, the memcg code also has to know about struct sock.
You can see the code of  mem_cgroup_sk_alloc and mem_cgroup_sk_free.

Thanks.
I'm not quite sure that this is an overall improvement.


-- 
Yours,
Muchun
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help