On Fri, Jun 02, 2023 at 04:11:35PM +0800, Abel Wu 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] There is also sk_page_frag_refill() where we can enter the global protocol memory pressure on actual global memory pressure i.e. page allocation failed. However this might be irrelevant from this patch's perspective as the focus is on the leaving part. > > So the conditions of leaving global pressure are inconstant, which *inconsistent > 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> This patch looks good.