• Abel Wu's avatar
    net-memcg: Fix scope of sockmem pressure indicators · ac8a5296
    Abel Wu authored
    Now there are two indicators of socket memory pressure sit inside
    struct mem_cgroup, socket_pressure and tcpmem_pressure, indicating
    memory reclaim pressure in memcg->memory and ->tcpmem respectively.
    
    When in legacy mode (cgroupv1), the socket memory is charged into
    ->tcpmem which is independent of ->memory, so socket_pressure has
    nothing to do with socket's pressure at all. Things could be worse
    by taking socket_pressure into consideration in legacy mode, as a
    pressure in ->memory can lead to premature reclamation/throttling
    in socket.
    
    While for the default mode (cgroupv2), the socket memory is charged
    into ->memory, and ->tcpmem/->tcpmem_pressure are simply not used.
    
    So {socket,tcpmem}_pressure are only used in default/legacy mode
    respectively for indicating socket memory pressure. This patch fixes
    the pieces of code that make mixed use of both.
    
    Fixes: 8e8ae645
    
     ("mm: memcontrol: hook up vmpressure to socket pressure")
    Signed-off-by: default avatarAbel Wu <wuyun.abel@bytedance.com>
    Acked-by: default avatarShakeel Butt <shakeelb@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ac8a5296
vmpressure.c 14.1 KB