Re: [PATCH v2] Port hierarchical_{memory,swap}_limit cgroup1->cgroup2

From: Waiman Long
Date: Mon Feb 12 2024 - 10:26:58 EST



On 2/12/24 10:00, Michal Koutný wrote:
Hello.

Something like this would come quite handy.

On Mon, Feb 12, 2024 at 12:10:38PM +0800, "Jan Kratochvil (Azul)" <jkratochvil@xxxxxxxx> wrote:
which are useful for userland to easily and performance-wise find out the
effective cgroup limits being applied.
And the only way to figure out inside cgroupns.

But for cgroup2 it has been missing so far, this is just a copy-paste of the
cgroup1 code while changing s/memsw/swap/ as that is what cgroup1 vs. cgroup2
tracks. I have added it to the end of "memory.stat" to prevent possible
compatibility problems with existing code parsing that file.
I was thinking of memory.max.effective (and others).

- no need to (possibly flush) stats when reading memory.stat
- can be generalized also for pids controller (and other "limiting" controllers)
- analogous to precedent of cpuset.cpus.effective

Whereas, using v1 approach in v2:
- memory.stat mixes true stats and limits,
- memmory.stat is hierarchical by default, no need for the prefix.

What do you think of the separate .effective file(s)?

This is certainly a good alternative.

Cheers,
Longman