[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87qzvdqkyh.fsf@linux.dev>
Date: Wed, 08 Oct 2025 11:58:46 -0700
From: Roman Gushchin <roman.gushchin@...ux.dev>
To: Daniel Sedlak <daniel.sedlak@...77.com>
Cc: "David S. Miller" <davem@...emloft.net>, Eric Dumazet
<edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni
<pabeni@...hat.com>, Simon Horman <horms@...nel.org>, Jonathan Corbet
<corbet@....net>, Neal Cardwell <ncardwell@...gle.com>, Kuniyuki
Iwashima <kuniyu@...gle.com>, David Ahern <dsahern@...nel.org>, Andrew
Morton <akpm@...ux-foundation.org>, Shakeel Butt
<shakeel.butt@...ux.dev>, Yosry Ahmed <yosry.ahmed@...ux.dev>,
linux-mm@...ck.org, netdev@...r.kernel.org, Johannes Weiner
<hannes@...xchg.org>, Michal Hocko <mhocko@...nel.org>, Muchun Song
<muchun.song@...ux.dev>, cgroups@...r.kernel.org, Tejun Heo
<tj@...nel.org>, Michal Koutný <mkoutny@...e.com>,
Matyas Hurtik
<matyas.hurtik@...77.com>
Subject: Re: [PATCH v5] memcg: expose socket memory pressure in a cgroup
Daniel Sedlak <daniel.sedlak@...77.com> writes:
> This patch is a result of our long-standing debug sessions, where it all
> started as "networking is slow", and TCP network throughput suddenly
> dropped from tens of Gbps to few Mbps, and we could not see anything in
> the kernel log or netstat counters.
>
> Currently, we have two memory pressure counters for TCP sockets [1],
> which we manipulate only when the memory pressure is signalled through
> the proto struct [2]. However, the memory pressure can also be signaled
> through the cgroup memory subsystem, which we do not reflect in the
> netstat counters. In the end, when the cgroup memory subsystem signals
> that it is under pressure, we silently reduce the advertised TCP window
> with tcp_adjust_rcv_ssthresh() to 4*advmss, which causes a significant
> throughput reduction.
>
> Keep in mind that when the cgroup memory subsystem signals the socket
> memory pressure for a given cgroup, it affects all sockets used in that
> cgroup, including children cgroups.
>
> This patch exposes a new file for each cgroup in sysfs which is a
> read-only single value file showing how many microseconds this cgroup
> contributed to throttling the throughput of network sockets. The file is
> accessible in the following path.
>
> /sys/fs/cgroup/**/<cgroup name>/memory.net.throttled_usec
Hi Daniel!
How this value is going to be used? In other words, do you need an
exact number or something like memory.events::net_throttled would be
enough for your case?
Thanks!
Powered by blists - more mailing lists