Re: [PATCH net] sock: Fix misuse of sk_under_memory_pressure()

From: Shakeel Butt
Date: Wed Aug 16 2023 - 12:23:53 EST


On Wed, Aug 16, 2023 at 2:12 AM Abel Wu <wuyun.abel@xxxxxxxxxxxxx> wrote:
>
> The status of global socket memory pressure is updated when:
>
> a) __sk_mem_raise_allocated():
>
> enter: sk_memory_allocated(sk) > sysctl_mem[1]
> leave: sk_memory_allocated(sk) <= sysctl_mem[0]
>
> b) __sk_mem_reduce_allocated():
>
> leave: sk_under_memory_pressure(sk) &&
> sk_memory_allocated(sk) < sysctl_mem[0]
>
> So the conditions of leaving global pressure are inconstant, which
> may lead to the situation that one pressured net-memcg prevents the
> global pressure from being cleared when there is indeed no global
> pressure, thus the global constrains are still in effect unexpectedly
> on the other sockets.
>
> This patch fixes this by ignoring the net-memcg's pressure when
> deciding whether should leave global memory pressure.
>
> Fixes: e1aab161e013 ("socket: initial cgroup code.")
> Signed-off-by: Abel Wu <wuyun.abel@xxxxxxxxxxxxx>

Acked-by: Shakeel Butt <shakeelb@xxxxxxxxxx>