Patch "cgroup: disable controllers at parse time" has been added to the 4.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    cgroup: disable controllers at parse time

to the 4.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     cgroup-disable-controllers-at-parse-time.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit b1017cbc811aa34f71e8ab35c6b9cd1c9e06eb75
Author: Shakeel Butt <shakeelb@xxxxxxxxxx>
Date:   Wed May 12 13:19:46 2021 -0700

    cgroup: disable controllers at parse time
    
    [ Upstream commit 45e1ba40837ac2f6f4d4716bddb8d44bd7e4a251 ]
    
    This patch effectively reverts the commit a3e72739b7a7 ("cgroup: fix
    too early usage of static_branch_disable()"). The commit 6041186a3258
    ("init: initialize jump labels before command line option parsing") has
    moved the jump_label_init() before parse_args() which has made the
    commit a3e72739b7a7 unnecessary. On the other hand there are
    consequences of disabling the controllers later as there are subsystems
    doing the controller checks for different decisions. One such incident
    is reported [1] regarding the memory controller and its impact on memory
    reclaim code.
    
    [1] https://lore.kernel.org/linux-mm/921e53f3-4b13-aab8-4a9e-e83ff15371e4@xxxxxxx
    
    Signed-off-by: Shakeel Butt <shakeelb@xxxxxxxxxx>
    Reported-by: NOMURA JUNICHI(é??æ??ã??æ·³ä¸?) <junichi.nomura@xxxxxxx>
    Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
    Tested-by: Jun'ichi Nomura <junichi.nomura@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 684d02f343b4..3e0fca894a8b 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -5636,8 +5636,6 @@ int __init cgroup_init_early(void)
 	return 0;
 }
 
-static u16 cgroup_disable_mask __initdata;
-
 /**
  * cgroup_init - cgroup initialization
  *
@@ -5695,12 +5693,8 @@ int __init cgroup_init(void)
 		 * disabled flag and cftype registration needs kmalloc,
 		 * both of which aren't available during early_init.
 		 */
-		if (cgroup_disable_mask & (1 << ssid)) {
-			static_branch_disable(cgroup_subsys_enabled_key[ssid]);
-			printk(KERN_INFO "Disabling %s control group subsystem\n",
-			       ss->name);
+		if (!cgroup_ssid_enabled(ssid))
 			continue;
-		}
 
 		if (cgroup_ssid_no_v1(ssid))
 			printk(KERN_INFO "Disabling %s control group subsystem in v1 mounts\n",
@@ -6143,7 +6137,10 @@ static int __init cgroup_disable(char *str)
 			if (strcmp(token, ss->name) &&
 			    strcmp(token, ss->legacy_name))
 				continue;
-			cgroup_disable_mask |= 1 << i;
+
+			static_branch_disable(cgroup_subsys_enabled_key[i]);
+			pr_info("Disabling %s control group subsystem\n",
+				ss->name);
 		}
 	}
 	return 1;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux