• G
    socket: initial cgroup code. · e1aab161
    Glauber Costa 提交于
    The goal of this work is to move the memory pressure tcp
    controls to a cgroup, instead of just relying on global
    conditions.
    
    To avoid excessive overhead in the network fast paths,
    the code that accounts allocated memory to a cgroup is
    hidden inside a static_branch(). This branch is patched out
    until the first non-root cgroup is created. So when nobody
    is using cgroups, even if it is mounted, no significant performance
    penalty should be seen.
    
    This patch handles the generic part of the code, and has nothing
    tcp-specific.
    Signed-off-by: NGlauber Costa <glommer@parallels.com>
    Reviewed-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujtsu.com>
    CC: Kirill A. Shutemov <kirill@shutemov.name>
    CC: David S. Miller <davem@davemloft.net>
    CC: Eric W. Biederman <ebiederm@xmission.com>
    CC: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    e1aab161
sock.c 65.7 KB