Message ID | 20230530114011.13368-5-wuyun.abel@bytedance.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | sock: Improve condition on sockmem pressure | expand |
On Tue, 2023-05-30 at 19:40 +0800, Abel Wu wrote: > Now with the previous patch, __sk_mem_raise_allocated() considers > the memory pressure of both global and the socket's memcg on a func- > wide level, Since the "previous patch" (aka "sock: Consider memcg pressure when raising sockmem") has been dropped in this series revision, I guess this patch should be dropped, too? Is this targeting the 'net-next' tree or the 'net' one? please specify the target tree into the subj line. I think we could consider net-next for this series, given the IMHO not trivial implications. Cheers, Paolo
On 6/1/23 5:10 PM, Paolo Abeni wrote: > On Tue, 2023-05-30 at 19:40 +0800, Abel Wu wrote: >> Now with the previous patch, __sk_mem_raise_allocated() considers >> the memory pressure of both global and the socket's memcg on a func- >> wide level, > > Since the "previous patch" (aka "sock: Consider memcg pressure when > raising sockmem") has been dropped in this series revision, I guess > this patch should be dropped, too? Yes indeed, these two patches should go together. Sorry for my carelessness. > > Is this targeting the 'net-next' tree or the 'net' one? please specify > the target tree into the subj line. I think we could consider net-next > for this series, given the IMHO not trivial implications. Got it, I will resend this series based on net-next. Thanks! Abel
diff --git a/net/core/sock.c b/net/core/sock.c index 801df091e37a..86735ad2f903 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -3020,9 +3020,15 @@ 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)) + if (!sk_under_global_memory_pressure(sk)) return 1; + alloc = sk_sockets_allocated_read_positive(sk); + + /* If under global pressure, allow the sockets that are below + * average memory usage to raise, trying to be fair among all + * the sockets under global constrains. + */ if (sk_prot_mem_limits(sk, 2) > alloc * sk_mem_pages(sk->sk_wmem_queued + atomic_read(&sk->sk_rmem_alloc) +
Now with the previous patch, __sk_mem_raise_allocated() considers the memory pressure of both global and the socket's memcg on a func- wide level, making the condition of memcg's pressure in question redundant. Signed-off-by: Abel Wu <wuyun.abel@bytedance.com> --- net/core/sock.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)