| From: Shakeel Butt <shakeel.butt@linux.dev> |
| Subject: memcg-introduce-non-blocking-limit-setting-option-v3 |
| Date: Tue, 6 May 2025 16:28:33 -0700 |
| |
| add more explanation in doc and commit message on O_NONBLOCK side-effects |
| (Johannes) |
| |
| Link: https://lkml.kernel.org/r/20250506232833.3109790-1-shakeel.butt@linux.dev |
| Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev> |
| Acked-by: Roman Gushchin <roman.gushchin@linux.dev> |
| Acked-by: Johannes Weiner <hannes@cmpxchg.org> |
| Cc: Greg Thelen <gthelen@google.com> |
| Cc: Michal Hocko <mhocko@kernel.org> |
| Cc: Michal Koutný <mkoutny@suse.com> |
| Cc: Muchun Song <muchun.song@linux.dev> |
| Cc: Tejun Heo <tj@kernel.org> |
| Cc: Yosry Ahmed <yosry.ahmed@linux.dev> |
| Cc: Christian Brauner <brauner@kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| Documentation/admin-guide/cgroup-v2.rst | 34 ++++++++++++++-------- |
| 1 file changed, 22 insertions(+), 12 deletions(-) |
| |
| --- a/Documentation/admin-guide/cgroup-v2.rst~memcg-introduce-non-blocking-limit-setting-option-v3 |
| +++ a/Documentation/admin-guide/cgroup-v2.rst |
| @@ -1299,12 +1299,17 @@ PAGE_SIZE multiple when read back. |
| monitors the limited cgroup to alleviate heavy reclaim |
| pressure. |
| |
| - If memory.high is opened with O_NONBLOCK then the synchronous |
| - reclaim is bypassed. This is useful for admin processes that |
| - need to dynamically adjust the job's memory limits without |
| - expending their own CPU resources on memory reclamation. The |
| - job will trigger the reclaim and/or get throttled on its |
| - next charge request. |
| + If memory.high is opened with O_NONBLOCK then the synchronous |
| + reclaim is bypassed. This is useful for admin processes that |
| + need to dynamically adjust the job's memory limits without |
| + expending their own CPU resources on memory reclamation. The |
| + job will trigger the reclaim and/or get throttled on its |
| + next charge request. |
| + |
| + Please note that with O_NONBLOCK, there is a chance that the |
| + target memory cgroup may take indefinite amount of time to |
| + reduce usage below the limit due to delayed charge request or |
| + busy-hitting its memory to slow down reclaim. |
| |
| memory.max |
| A read-write single value file which exists on non-root |
| @@ -1323,12 +1328,17 @@ PAGE_SIZE multiple when read back. |
| Caller could retry them differently, return into userspace |
| as -ENOMEM or silently ignore in cases like disk readahead. |
| |
| - If memory.max is opened with O_NONBLOCK, then the synchronous |
| - reclaim and oom-kill are bypassed. This is useful for admin |
| - processes that need to dynamically adjust the job's memory limits |
| - without expending their own CPU resources on memory reclamation. |
| - The job will trigger the reclaim and/or oom-kill on its next |
| - charge request. |
| + If memory.max is opened with O_NONBLOCK, then the synchronous |
| + reclaim and oom-kill are bypassed. This is useful for admin |
| + processes that need to dynamically adjust the job's memory limits |
| + without expending their own CPU resources on memory reclamation. |
| + The job will trigger the reclaim and/or oom-kill on its next |
| + charge request. |
| + |
| + Please note that with O_NONBLOCK, there is a chance that the |
| + target memory cgroup may take indefinite amount of time to |
| + reduce usage below the limit due to delayed charge request or |
| + busy-hitting its memory to slow down reclaim. |
| |
| memory.reclaim |
| A write-only nested-keyed file which exists for all cgroups. |
| _ |