On Wed, May 12, 2021 at 1:19 PM Shakeel Butt <shakeelb@xxxxxxxxxx> wrote: > > 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> Nomura, I think you have already tested this patch, so, can you please add your tested-by tag? Tejun, any comments or concerns? Yang, do you think we should add Fixes tag to make sure this patch lands in 5.13 where your shrinker patches landed? > --- > kernel/cgroup/cgroup.c | 13 +++++-------- > 1 file changed, 5 insertions(+), 8 deletions(-) > > diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c > index e049edd66776..e7a9a2998245 100644 > --- a/kernel/cgroup/cgroup.c > +++ b/kernel/cgroup/cgroup.c > @@ -5634,8 +5634,6 @@ int __init cgroup_init_early(void) > return 0; > } > > -static u16 cgroup_disable_mask __initdata; > - > /** > * cgroup_init - cgroup initialization > * > @@ -5694,12 +5692,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 (cgroup1_ssid_disabled(ssid)) > printk(KERN_INFO "Disabling %s control group subsystem in v1 mounts\n", > @@ -6214,7 +6208,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; > -- > 2.31.1.607.g51e8a6a459-goog >