From: Roman Gushchin <g...@fb.com>
Date: Thu, 25 Jan 2018 00:19:11 +0000

> @@ -476,6 +477,10 @@ struct sock *inet_csk_accept(struct sock *sk, int flags, 
> int *err, bool kern)
>               spin_unlock_bh(&queue->fastopenq.lock);
>       }
>       mem_cgroup_sk_alloc(newsk);
> +     amt = sk_memory_allocated(newsk);
> +     if (amt && newsk->sk_memcg)
> +             mem_cgroup_charge_skmem(newsk->sk_memcg, amt);
> +

This looks confusing to me.

sk_memory_allocated() is the total amount of memory used by all
sockets for a particular "struct proto", not just for that specific
socket.

Maybe I don't understand how this socket memcg stuff works, but it
seems like you should be looking instead at how much memory is
allocated to this specific socket.

Thanks.

Reply via email to