]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
cgroup: Add deprecation message to legacy freezer controller
authorMichal Koutný <mkoutny@suse.com>
Tue, 11 Mar 2025 12:36:26 +0000 (13:36 +0100)
committerTejun Heo <tj@kernel.org>
Tue, 11 Mar 2025 19:22:54 +0000 (09:22 -1000)
As explained in the commit 76f969e8948d8 ("cgroup: cgroup v2 freezer"),
the original freezer is imperfect, some users may unwittingly rely on it
when there exists the alternative of v2. Print a message when it happens
and explain that in the docs.

Signed-off-by: Michal Koutný <mkoutny@suse.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Documentation/admin-guide/cgroup-v1/freezer-subsystem.rst
kernel/cgroup/legacy_freezer.c

index 582d3427de3f819558164cca07438c879a4aa555..a964aff373b19d2df2dc2ab78690a82331afb7ce 100644 (file)
@@ -125,3 +125,7 @@ to unfreeze all tasks in the container::
 
 This is the basic mechanism which should do the right thing for user space task
 in a simple scenario.
+
+This freezer implementation is affected by shortcomings (see commit
+76f969e8948d8 ("cgroup: cgroup v2 freezer")) and cgroup v2 freezer is
+recommended.
index 074653f964c1d058f1dcc60dc395d77272a5ad04..039d1eb2f215bb929514b8239575de5b0eb0cdc6 100644 (file)
@@ -430,9 +430,11 @@ static ssize_t freezer_write(struct kernfs_open_file *of,
 
        if (strcmp(buf, freezer_state_strs(0)) == 0)
                freeze = false;
-       else if (strcmp(buf, freezer_state_strs(CGROUP_FROZEN)) == 0)
+       else if (strcmp(buf, freezer_state_strs(CGROUP_FROZEN)) == 0) {
+               pr_info_once("Freezing with imperfect legacy cgroup freezer. "
+                            "See cgroup.freeze of cgroup v2\n");
                freeze = true;
-       else
+       else
                return -EINVAL;
 
        freezer_change_state(css_freezer(of_css(of)), freeze);