]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
memcg-introduce-non-blocking-limit-setting-option-v3
authorShakeel Butt <shakeel.butt@linux.dev>
Tue, 6 May 2025 23:28:33 +0000 (16:28 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 13 May 2025 06:50:35 +0000 (23:50 -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

index b34f1dd969e016284c2df0ed01535f48db98f8b1..d537f3d3fed9876d9d2619a00295a65ad11beb59 100644 (file)
@@ -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.