From nobody Thu Nov 27 13:59:28 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6C4312EF673; Fri, 21 Nov 2025 17:02:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763744552; cv=none; b=ESPryXhelyC2BdPmpbSI43qk/em50tFl7Pr5aQAirKdxUjDDk7g5D4mjyG0NmFpG7JpGSkbjeCfk92YwI8UWSuZhXokXyDixiGftSZhWNXfO0etpe5RgfGm6x3te4OrwFk1qWlrg5Rx2he3EixbEIKBRICBfyteS3Clgyhcn3p4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763744552; c=relaxed/simple; bh=E5wcI+z/Iyhniomwivx/9qPvXu9SKA6nPNoFpiR5cmI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jowCLOzn/fZ5ruHuDBYCeoCMpkCN5LfBWxUjUDqXyD7PEthZES69AaiBcsoF68D8SVlG3XbsVA4PyFmCiv1fkPVK6ioZ4RD75x8//HGtgc6dacJ5fo1XFynWadujPngbv+/v8T6skLhU3Nc3SGa51UL7UcLHNVq6OOlodTitEPE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LjrsNAMk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LjrsNAMk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B1246C4CEF1; Fri, 21 Nov 2025 17:02:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763744551; bh=E5wcI+z/Iyhniomwivx/9qPvXu9SKA6nPNoFpiR5cmI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=LjrsNAMk7EqdJ1rDyrSyFSMyqEcHyuhF3RGHfQMRWC97UPZA1jRUCce9HF9zwL6V+ hUipubhu/Y6aKi2tanvmAzNIFk3j2vFJQUzNJhGMHpBmLsR4nFQQ5Dte9rulCycedt NO/5hiJ1dmZsEL6o50i+74MSw+6cK6nW6sFeGgG+1FdDj8FIhfSoemILQaXQof/6Lr EI+64s/qCmE+VzXBW3dzL/J/HAEgFlU8hbz+gaj+BWdaTNCWNypyqhSoIZ57IjtZE6 0HFg46rXYzCrkp6j+WW4y2G0tDncymJduI73rTjStQu5Mr9L6IKE9M98D9o5/TBpOD 7c8SrE7IvKZGg== From: "Matthieu Baerts (NGI0)" Date: Fri, 21 Nov 2025 18:02:00 +0100 Subject: [PATCH net-next 01/14] net: factor-out _sk_charge() helper Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251121-net-next-mptcp-memcg-backlog-imp-v1-1-1f34b6c1e0b1@kernel.org> References: <20251121-net-next-mptcp-memcg-backlog-imp-v1-0-1f34b6c1e0b1@kernel.org> In-Reply-To: <20251121-net-next-mptcp-memcg-backlog-imp-v1-0-1f34b6c1e0b1@kernel.org> To: Eric Dumazet , Kuniyuki Iwashima , Paolo Abeni , Willem de Bruijn , "David S. Miller" , Jakub Kicinski , Simon Horman , David Ahern , Mat Martineau , Geliang Tang , Peter Krystad , Florian Westphal , Christoph Paasch Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, mptcp@lists.linux.dev, Davide Caratti , "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2662; i=matttbe@kernel.org; h=from:subject:message-id; bh=hK0a1iO/ogfUyqYhDGeAlo+Zr9nsYO9S3nxWufSEKio=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDIVZgswZf5axP6QzecYl1HAWjGR2x4zj/BcOSbKtfTbw 3BzN97kjlIWBjEuBlkxRRbptsj8mc+reEu8/Cxg5rAygQxh4OIUgImkHWZk2BCU5tAQzybe7Ryb Y73ki4yvJ0OnAftP3lJeeY/NPzLeMvzTzNjg+PP6Nl/d3kWCrE8/Se9Nc8/YtoxvHtc/rlCmpAg WAA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Paolo Abeni Move out of __inet_accept() the code dealing charging newly accepted socket to memcg. MPTCP will soon use it to on a per subflow basis, in different contexts. No functional changes intended. Signed-off-by: Paolo Abeni Acked-by: Geliang Tang Acked-by: Matthieu Baerts (NGI0) Signed-off-by: Matthieu Baerts (NGI0) --- include/net/sock.h | 2 ++ net/core/sock.c | 18 ++++++++++++++++++ net/ipv4/af_inet.c | 17 +---------------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/include/net/sock.h b/include/net/sock.h index a5f36ea9d46f..38d48cfe0741 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1631,6 +1631,8 @@ static inline void sk_mem_uncharge(struct sock *sk, i= nt size) sk_mem_reclaim(sk); } =20 +void __sk_charge(struct sock *sk, gfp_t gfp); + #if IS_ENABLED(CONFIG_PROVE_LOCKING) && IS_ENABLED(CONFIG_MODULES) static inline void sk_owner_set(struct sock *sk, struct module *owner) { diff --git a/net/core/sock.c b/net/core/sock.c index 3b74fc71f51c..b26a6cdc9bcd 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -3448,6 +3448,24 @@ void __sk_mem_reclaim(struct sock *sk, int amount) } EXPORT_SYMBOL(__sk_mem_reclaim); =20 +void __sk_charge(struct sock *sk, gfp_t gfp) +{ + int amt; + + gfp |=3D __GFP_NOFAIL; + if (mem_cgroup_from_sk(sk)) { + /* The socket has not been accepted yet, no need + * to look at newsk->sk_wmem_queued. + */ + amt =3D sk_mem_pages(sk->sk_forward_alloc + + atomic_read(&sk->sk_rmem_alloc)); + if (amt) + mem_cgroup_sk_charge(sk, amt, gfp); + } + + kmem_cache_charge(sk, gfp); +} + int sk_set_peek_off(struct sock *sk, int val) { WRITE_ONCE(sk->sk_peek_off, val); diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index a31b94ce8968..08d811f11896 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -756,23 +756,8 @@ EXPORT_SYMBOL(inet_stream_connect); void __inet_accept(struct socket *sock, struct socket *newsock, struct soc= k *newsk) { if (mem_cgroup_sockets_enabled) { - gfp_t gfp =3D GFP_KERNEL | __GFP_NOFAIL; - mem_cgroup_sk_alloc(newsk); - - if (mem_cgroup_from_sk(newsk)) { - int amt; - - /* The socket has not been accepted yet, no need - * to look at newsk->sk_wmem_queued. - */ - amt =3D sk_mem_pages(newsk->sk_forward_alloc + - atomic_read(&newsk->sk_rmem_alloc)); - if (amt) - mem_cgroup_sk_charge(newsk, amt, gfp); - } - - kmem_cache_charge(newsk, gfp); + __sk_charge(newsk, GFP_KERNEL); } =20 sock_rps_record_flow(newsk); --=20 2.51.0