Skip to content

Commit 53bf916

Browse files
Abel-WYkuba-moo
authored andcommitted
inet: Cleanup on charging memory for newly accepted sockets
If there is no net-memcg associated with the sock, don't bother calculating its memory usage for charge. Signed-off-by: Abel Wu <wuyun.abel@bytedance.com> Link: https://lore.kernel.org/r/20230620092712.16217-1-wuyun.abel@bytedance.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent ca4fa87 commit 53bf916

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

net/ipv4/inet_connection_sock.c

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -706,20 +706,23 @@ struct sock *inet_csk_accept(struct sock *sk, int flags, int *err, bool kern)
706706
out:
707707
release_sock(sk);
708708
if (newsk && mem_cgroup_sockets_enabled) {
709-
int amt;
709+
int amt = 0;
710710

711711
/* atomically get the memory usage, set and charge the
712712
* newsk->sk_memcg.
713713
*/
714714
lock_sock(newsk);
715715

716-
/* The socket has not been accepted yet, no need to look at
717-
* newsk->sk_wmem_queued.
718-
*/
719-
amt = sk_mem_pages(newsk->sk_forward_alloc +
720-
atomic_read(&newsk->sk_rmem_alloc));
721716
mem_cgroup_sk_alloc(newsk);
722-
if (newsk->sk_memcg && amt)
717+
if (newsk->sk_memcg) {
718+
/* The socket has not been accepted yet, no need
719+
* to look at newsk->sk_wmem_queued.
720+
*/
721+
amt = sk_mem_pages(newsk->sk_forward_alloc +
722+
atomic_read(&newsk->sk_rmem_alloc));
723+
}
724+
725+
if (amt)
723726
mem_cgroup_charge_skmem(newsk->sk_memcg, amt,
724727
GFP_KERNEL | __GFP_NOFAIL);
725728

0 commit comments

Comments
 (0)