Hi. On Fri, May 06, 2022 at 10:09:16PM -0700, Ganesan Rajagopal <rganesan@xxxxxxxxxx> wrote: > We run a lot of automated tests when building our software and run into > OOM scenarios when the tests run unbounded. v1 memcg exports > memcg->watermark as "memory.max_usage_in_bytes" in sysfs. We use this > metric to heuristically limit the number of tests that can run in > parallel based on per test historical data. > > This metric is currently not exported for v2 memcg and there is no > other easy way of getting this information. getrusage() syscall returns > "ru_maxrss" which can be used as an approximation but that's the max > RSS of a single child process across all children instead of the > aggregated max for all child processes. The only work around is to > periodically poll "memory.current" but that's not practical for > short-lived one-off cgroups. > > Hence, expose memcg->watermark as "memory.peak" for v2 memcg. It'll save some future indirections if the commit messages includes the argument about multiple readers and purposeful irresetability. > > Signed-off-by: Ganesan Rajagopal <rganesan@xxxxxxxxxx> > --- > Documentation/admin-guide/cgroup-v2.rst | 7 +++++++ > mm/memcontrol.c | 13 +++++++++++++ > 2 files changed, 20 insertions(+) Besides that it looks useful and correct, feel free to add Reviewed-by: Michal Koutný <mkoutny@xxxxxxxx>