On Mon, Aug 14, 2023 at 12:09 AM Abel Wu <wuyun.abel@xxxxxxxxxxxxx> wrote: > > 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: 8e8ae645249b ("mm: memcontrol: hook up vmpressure to socket pressure") > Signed-off-by: Abel Wu <wuyun.abel@xxxxxxxxxxxxx> So, this is undoing the unintended exposure of v2 functionality for the v1. I wonder if someone might have started depending upon that behavior but I am more convinced that no one is using v1's tcpmem accounting due to performance impact. So, this looks good to me. Acked-by: Shakeel Butt <shakeelb@xxxxxxxxxx> I do think we should start the deprecation process of v1's tcpmem accounting.