[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CALvZod4P3_726Jo_FAoDVTNrYcy1vgp67SSxix1=k8FEKoVM7g@mail.gmail.com>
Date: Mon, 18 Sep 2023 08:49:36 -0700
From: Shakeel Butt <shakeelb@...gle.com>
To: Abel Wu <wuyun.abel@...edance.com>
Cc: "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Roman Gushchin <roman.gushchin@...ux.dev>,
Michal Hocko <mhocko@...e.com>,
Johannes Weiner <hannes@...xchg.org>,
Yosry Ahmed <yosryahmed@...gle.com>,
Yu Zhao <yuzhao@...gle.com>,
"Matthew Wilcox (Oracle)" <willy@...radead.org>,
Kefeng Wang <wangkefeng.wang@...wei.com>,
Yafang Shao <laoar.shao@...il.com>,
Kuniyuki Iwashima <kuniyu@...zon.com>,
Martin KaFai Lau <martin.lau@...nel.org>,
Breno Leitao <leitao@...ian.org>,
Alexander Mikhalitsyn <alexander@...alicyn.com>,
David Howells <dhowells@...hat.com>,
Jason Xing <kernelxing@...cent.com>,
open list <linux-kernel@...r.kernel.org>,
"open list:NETWORKING [GENERAL]" <netdev@...r.kernel.org>,
"open list:MEMORY MANAGEMENT" <linux-mm@...ck.org>
Subject: Re: [RFC PATCH net-next 3/3] sock: Throttle pressure-aware sockets
under pressure
On Mon, Sep 18, 2023 at 12:48 AM Abel Wu <wuyun.abel@...edance.com> wrote:
>
> On 9/1/23 2:21 PM, Abel Wu wrote:
> > @@ -3087,8 +3100,20 @@ int __sk_mem_raise_allocated(struct sock *sk, int size, int amt, int kind)
> > if (sk_has_memory_pressure(sk)) {
> > u64 alloc;
> >
> > - if (!sk_under_memory_pressure(sk))
> > + /* Be more conservative if the socket's memcg (or its
> > + * parents) is under reclaim pressure, try to possibly
> > + * avoid further memstall.
> > + */
> > + if (under_memcg_pressure)
> > + goto suppress_allocation;
> > +
> > + if (!sk_under_global_memory_pressure(sk))
> > return 1;
> > +
> > + /* Trying to be fair among all the sockets of same
> > + * protocal under global memory pressure, by allowing
> > + * the ones that under average usage to raise.
> > + */
> > alloc = sk_sockets_allocated_read_positive(sk);
> > if (sk_prot_mem_limits(sk, 2) > alloc *
> > sk_mem_pages(sk->sk_wmem_queued +
>
> I totally agree with what Shakeel said in last reply and will try ebpf-
> based solution to let userspace inject proper strategies. But IMHO the
> above hunk is irrelevant to the idea of this patchset, and is the right
> thing to do, so maybe worth a separate patch?
>
> This hunk originally passes the allocation when this socket is below
> average usage even under global and/or memcg pressure. It makes sense
> to do so under global pressure, as the 'average' is in the scope of
> global, but it's really weird from a memcg's point of view. Actually
> this pass condition was present before memcg pressure was introduced.
>
> Please correct me if I missed something, thanks!
>
Please send the patch 1 and this hunk as separate patches with
relevant motivation and reasoning.
thanks,
Shakeel
Powered by blists - more mailing lists