[PATCH v5 net-next 00/10] net-memcg: Gather memcg code under CONFIG_MEMCG.

Kuniyuki Iwashima posted 10 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/20250815201712.1745332-1-kuniyu@google.com
include/linux/memcontrol.h      | 45 ++++++++++++++++++--------------
include/net/proto_memory.h      |  4 +--
include/net/sock.h              | 46 +++++++++++++++++++++++++++++++++
include/net/tcp.h               |  4 +--
mm/memcontrol.c                 | 40 +++++++++++++++++++++-------
net/core/sock.c                 | 38 ++++++++++++++-------------
net/ipv4/inet_connection_sock.c | 19 +++++++-------
net/ipv4/tcp_output.c           |  5 ++--
net/mptcp/protocol.h            |  4 +--
net/mptcp/subflow.c             | 11 +++-----
10 files changed, 142 insertions(+), 74 deletions(-)
[PATCH v5 net-next 00/10] net-memcg: Gather memcg code under CONFIG_MEMCG.
Posted by Kuniyuki Iwashima 1 month ago
This series converts most sk->sk_memcg access to helper functions
under CONFIG_MEMCG and finally defines sk_memcg under CONFIG_MEMCG.

This is v5 of the series linked below but without core changes
that decoupled memcg and global socket memory accounting.

I will defer the changes to a follow-up series that will use BPF
to store a flag in sk->sk_memcg.


Overview of the series:

  patch 1 is a trivial fix for MPTCP
  patch 2 ~ 9 move sk->sk_memcg accesses to a single place
  patch 10 moves sk_memcg under CONFIG_MEMCG


Changes:
  v5:
    * Patch 1
      * Don't use set_active_memcg() and restore
        mem_cgroup_sk_inherit()

  v4: https://lore.kernel.org/netdev/20250814200912.1040628-1-kuniyu@google.com/
    * Drop patch 11 & 12
    * Patch 1
      * Use set_active_memcg()

  v3: https://lore.kernel.org/netdev/20250812175848.512446-1-kuniyu@google.com/
    * Patch 12
      * Fix build failrue for kTLS (include <net/proto_memory.h>)

  v2: https://lore.kernel.org/netdev/20250811173116.2829786-1-kuniyu@google.com/
    * Remove per-memcg knob
    * Patch 11
      * Set flag on sk_memcg based on memory.max
    * Patch 12
      * Add sk_should_enter_memory_pressure() and cover
        tcp_enter_memory_pressure() calls
      * Update examples in changelog

  v1: https://lore.kernel.org/netdev/20250721203624.3807041-1-kuniyu@google.com/


Kuniyuki Iwashima (10):
  mptcp: Fix up subflow's memcg when CONFIG_SOCK_CGROUP_DATA=n.
  mptcp: Use tcp_under_memory_pressure() in mptcp_epollin_ready().
  tcp: Simplify error path in inet_csk_accept().
  net: Call trace_sock_exceed_buf_limit() for memcg failure with
    SK_MEM_RECV.
  net: Clean up __sk_mem_raise_allocated().
  net-memcg: Introduce mem_cgroup_from_sk().
  net-memcg: Introduce mem_cgroup_sk_enabled().
  net-memcg: Pass struct sock to mem_cgroup_sk_(un)?charge().
  net-memcg: Pass struct sock to mem_cgroup_sk_under_memory_pressure().
  net: Define sk_memcg under CONFIG_MEMCG.

 include/linux/memcontrol.h      | 45 ++++++++++++++++++--------------
 include/net/proto_memory.h      |  4 +--
 include/net/sock.h              | 46 +++++++++++++++++++++++++++++++++
 include/net/tcp.h               |  4 +--
 mm/memcontrol.c                 | 40 +++++++++++++++++++++-------
 net/core/sock.c                 | 38 ++++++++++++++-------------
 net/ipv4/inet_connection_sock.c | 19 +++++++-------
 net/ipv4/tcp_output.c           |  5 ++--
 net/mptcp/protocol.h            |  4 +--
 net/mptcp/subflow.c             | 11 +++-----
 10 files changed, 142 insertions(+), 74 deletions(-)

-- 
2.51.0.rc1.163.g2494970778-goog
Re: [PATCH v5 net-next 00/10] net-memcg: Gather memcg code under CONFIG_MEMCG.
Posted by MPTCP CI 1 month ago
Hi Kuniyuki,

Thank you for your modifications, that's great!

Our CI did some validations and here is its report:

- KVM Validation: normal: Success! ✅
- KVM Validation: debug: Success! ✅
- KVM Validation: btf-normal (only bpftest_all): Success! ✅
- KVM Validation: btf-debug (only bpftest_all): Success! ✅
- Task: https://github.com/multipath-tcp/mptcp_net-next/actions/runs/16998832310

Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/269f6acfebcd
Patchwork: https://patchwork.kernel.org/project/mptcp/list/?series=992046


If there are some issues, you can reproduce them using the same environment as
the one used by the CI thanks to a docker image, e.g.:

    $ cd [kernel source code]
    $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
        --pull always mptcp/mptcp-upstream-virtme-docker:latest \
        auto-normal

For more details:

    https://github.com/multipath-tcp/mptcp-upstream-virtme-docker


Please note that despite all the efforts that have been already done to have a
stable tests suite when executed on a public CI like here, it is possible some
reported issues are not due to your modifications. Still, do not hesitate to
help us improve that ;-)

Cheers,
MPTCP GH Action bot
Bot operated by Matthieu Baerts (NGI0 Core)
Re: [PATCH v5 net-next 00/10] net-memcg: Gather memcg code under CONFIG_MEMCG.
Posted by patchwork-bot+netdevbpf@kernel.org 4 weeks ago
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Fri, 15 Aug 2025 20:16:08 +0000 you wrote:
> This series converts most sk->sk_memcg access to helper functions
> under CONFIG_MEMCG and finally defines sk_memcg under CONFIG_MEMCG.
> 
> This is v5 of the series linked below but without core changes
> that decoupled memcg and global socket memory accounting.
> 
> I will defer the changes to a follow-up series that will use BPF
> to store a flag in sk->sk_memcg.
> 
> [...]

Here is the summary with links:
  - [v5,net-next,01/10] mptcp: Fix up subflow's memcg when CONFIG_SOCK_CGROUP_DATA=n.
    https://git.kernel.org/netdev/net-next/c/68889dfd547b
  - [v5,net-next,02/10] mptcp: Use tcp_under_memory_pressure() in mptcp_epollin_ready().
    https://git.kernel.org/netdev/net-next/c/1068b48ed108
  - [v5,net-next,03/10] tcp: Simplify error path in inet_csk_accept().
    https://git.kernel.org/netdev/net-next/c/e2afa83296bb
  - [v5,net-next,04/10] net: Call trace_sock_exceed_buf_limit() for memcg failure with SK_MEM_RECV.
    https://git.kernel.org/netdev/net-next/c/9d85c565a7b7
  - [v5,net-next,05/10] net: Clean up __sk_mem_raise_allocated().
    https://git.kernel.org/netdev/net-next/c/bd4aa2337374
  - [v5,net-next,06/10] net-memcg: Introduce mem_cgroup_from_sk().
    https://git.kernel.org/netdev/net-next/c/f7161b234f2e
  - [v5,net-next,07/10] net-memcg: Introduce mem_cgroup_sk_enabled().
    https://git.kernel.org/netdev/net-next/c/43049b0db038
  - [v5,net-next,08/10] net-memcg: Pass struct sock to mem_cgroup_sk_(un)?charge().
    https://git.kernel.org/netdev/net-next/c/bb178c6bc085
  - [v5,net-next,09/10] net-memcg: Pass struct sock to mem_cgroup_sk_under_memory_pressure().
    https://git.kernel.org/netdev/net-next/c/b2ffd10cddde
  - [v5,net-next,10/10] net: Define sk_memcg under CONFIG_MEMCG.
    https://git.kernel.org/netdev/net-next/c/bf64002c94fc

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html