Commit 1434a312 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-5.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup

Pull cgroup fixes from Tejun Heo:

 - "cgroup_disable=" boot param was being applied too late confusing
   some subsystems. Fix it by moving application to __setup() time.

 - Comment spelling fixes. Included here to lower the chance of trivial
   future merge conflicts.

* 'for-5.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
  cgroup: fix spelling mistakes
  cgroup: disable controllers at parse time
parents 5df7ae7b 08b2b6fd
...@@ -232,7 +232,7 @@ struct css_set { ...@@ -232,7 +232,7 @@ struct css_set {
struct list_head task_iters; struct list_head task_iters;
/* /*
* On the default hierarhcy, ->subsys[ssid] may point to a css * On the default hierarchy, ->subsys[ssid] may point to a css
* attached to an ancestor instead of the cgroup this css_set is * attached to an ancestor instead of the cgroup this css_set is
* associated with. The following node is anchored at * associated with. The following node is anchored at
* ->subsys[ssid]->cgroup->e_csets[ssid] and provides a way to * ->subsys[ssid]->cgroup->e_csets[ssid] and provides a way to
...@@ -668,7 +668,7 @@ struct cgroup_subsys { ...@@ -668,7 +668,7 @@ struct cgroup_subsys {
*/ */
bool threaded:1; bool threaded:1;
/* the following two fields are initialized automtically during boot */ /* the following two fields are initialized automatically during boot */
int id; int id;
const char *name; const char *name;
...@@ -757,7 +757,7 @@ static inline void cgroup_threadgroup_change_end(struct task_struct *tsk) {} ...@@ -757,7 +757,7 @@ static inline void cgroup_threadgroup_change_end(struct task_struct *tsk) {}
* sock_cgroup_data overloads (prioidx, classid) and the cgroup pointer. * sock_cgroup_data overloads (prioidx, classid) and the cgroup pointer.
* On boot, sock_cgroup_data records the cgroup that the sock was created * On boot, sock_cgroup_data records the cgroup that the sock was created
* in so that cgroup2 matches can be made; however, once either net_prio or * in so that cgroup2 matches can be made; however, once either net_prio or
* net_cls starts being used, the area is overriden to carry prioidx and/or * net_cls starts being used, the area is overridden to carry prioidx and/or
* classid. The two modes are distinguished by whether the lowest bit is * classid. The two modes are distinguished by whether the lowest bit is
* set. Clear bit indicates cgroup pointer while set bit prioidx and * set. Clear bit indicates cgroup pointer while set bit prioidx and
* classid. * classid.
......
...@@ -32,7 +32,7 @@ struct kernel_clone_args; ...@@ -32,7 +32,7 @@ struct kernel_clone_args;
#ifdef CONFIG_CGROUPS #ifdef CONFIG_CGROUPS
/* /*
* All weight knobs on the default hierarhcy should use the following min, * All weight knobs on the default hierarchy should use the following min,
* default and max values. The default value is the logarithmic center of * default and max values. The default value is the logarithmic center of
* MIN and MAX and allows 100x to be expressed in both directions. * MIN and MAX and allows 100x to be expressed in both directions.
*/ */
......
...@@ -1001,7 +1001,7 @@ static int check_cgroupfs_options(struct fs_context *fc) ...@@ -1001,7 +1001,7 @@ static int check_cgroupfs_options(struct fs_context *fc)
ctx->subsys_mask &= enabled; ctx->subsys_mask &= enabled;
/* /*
* In absense of 'none', 'name=' or subsystem name options, * In absence of 'none', 'name=' and subsystem name options,
* let's default to 'all'. * let's default to 'all'.
*/ */
if (!ctx->subsys_mask && !ctx->none && !ctx->name) if (!ctx->subsys_mask && !ctx->none && !ctx->name)
......
...@@ -468,7 +468,7 @@ static struct cgroup_subsys_state *cgroup_css(struct cgroup *cgrp, ...@@ -468,7 +468,7 @@ static struct cgroup_subsys_state *cgroup_css(struct cgroup *cgrp,
* @cgrp: the cgroup of interest * @cgrp: the cgroup of interest
* @ss: the subsystem of interest * @ss: the subsystem of interest
* *
* Find and get @cgrp's css assocaited with @ss. If the css doesn't exist * Find and get @cgrp's css associated with @ss. If the css doesn't exist
* or is offline, %NULL is returned. * or is offline, %NULL is returned.
*/ */
static struct cgroup_subsys_state *cgroup_tryget_css(struct cgroup *cgrp, static struct cgroup_subsys_state *cgroup_tryget_css(struct cgroup *cgrp,
...@@ -1633,7 +1633,7 @@ static void cgroup_rm_file(struct cgroup *cgrp, const struct cftype *cft) ...@@ -1633,7 +1633,7 @@ static void cgroup_rm_file(struct cgroup *cgrp, const struct cftype *cft)
/** /**
* css_clear_dir - remove subsys files in a cgroup directory * css_clear_dir - remove subsys files in a cgroup directory
* @css: taget css * @css: target css
*/ */
static void css_clear_dir(struct cgroup_subsys_state *css) static void css_clear_dir(struct cgroup_subsys_state *css)
{ {
...@@ -5350,7 +5350,7 @@ int cgroup_mkdir(struct kernfs_node *parent_kn, const char *name, umode_t mode) ...@@ -5350,7 +5350,7 @@ int cgroup_mkdir(struct kernfs_node *parent_kn, const char *name, umode_t mode)
/* /*
* This is called when the refcnt of a css is confirmed to be killed. * This is called when the refcnt of a css is confirmed to be killed.
* css_tryget_online() is now guaranteed to fail. Tell the subsystem to * css_tryget_online() is now guaranteed to fail. Tell the subsystem to
* initate destruction and put the css ref from kill_css(). * initiate destruction and put the css ref from kill_css().
*/ */
static void css_killed_work_fn(struct work_struct *work) static void css_killed_work_fn(struct work_struct *work)
{ {
...@@ -5634,8 +5634,6 @@ int __init cgroup_init_early(void) ...@@ -5634,8 +5634,6 @@ int __init cgroup_init_early(void)
return 0; return 0;
} }
static u16 cgroup_disable_mask __initdata;
/** /**
* cgroup_init - cgroup initialization * cgroup_init - cgroup initialization
* *
...@@ -5694,12 +5692,8 @@ int __init cgroup_init(void) ...@@ -5694,12 +5692,8 @@ int __init cgroup_init(void)
* disabled flag and cftype registration needs kmalloc, * disabled flag and cftype registration needs kmalloc,
* both of which aren't available during early_init. * both of which aren't available during early_init.
*/ */
if (cgroup_disable_mask & (1 << ssid)) { if (!cgroup_ssid_enabled(ssid))
static_branch_disable(cgroup_subsys_enabled_key[ssid]);
printk(KERN_INFO "Disabling %s control group subsystem\n",
ss->name);
continue; continue;
}
if (cgroup1_ssid_disabled(ssid)) if (cgroup1_ssid_disabled(ssid))
printk(KERN_INFO "Disabling %s control group subsystem in v1 mounts\n", printk(KERN_INFO "Disabling %s control group subsystem in v1 mounts\n",
...@@ -6058,7 +6052,7 @@ int cgroup_can_fork(struct task_struct *child, struct kernel_clone_args *kargs) ...@@ -6058,7 +6052,7 @@ int cgroup_can_fork(struct task_struct *child, struct kernel_clone_args *kargs)
* @kargs: the arguments passed to create the child process * @kargs: the arguments passed to create the child process
* *
* This calls the cancel_fork() callbacks if a fork failed *after* * This calls the cancel_fork() callbacks if a fork failed *after*
* cgroup_can_fork() succeded and cleans up references we took to * cgroup_can_fork() succeeded and cleans up references we took to
* prepare a new css_set for the child process in cgroup_can_fork(). * prepare a new css_set for the child process in cgroup_can_fork().
*/ */
void cgroup_cancel_fork(struct task_struct *child, void cgroup_cancel_fork(struct task_struct *child,
...@@ -6214,7 +6208,10 @@ static int __init cgroup_disable(char *str) ...@@ -6214,7 +6208,10 @@ static int __init cgroup_disable(char *str)
if (strcmp(token, ss->name) && if (strcmp(token, ss->name) &&
strcmp(token, ss->legacy_name)) strcmp(token, ss->legacy_name))
continue; 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; return 1;
......
...@@ -3376,7 +3376,7 @@ nodemask_t cpuset_mems_allowed(struct task_struct *tsk) ...@@ -3376,7 +3376,7 @@ nodemask_t cpuset_mems_allowed(struct task_struct *tsk)
} }
/** /**
* cpuset_nodemask_valid_mems_allowed - check nodemask vs. curremt mems_allowed * cpuset_nodemask_valid_mems_allowed - check nodemask vs. current mems_allowed
* @nodemask: the nodemask to be checked * @nodemask: the nodemask to be checked
* *
* Are any of the nodes in the nodemask allowed in current->mems_allowed? * Are any of the nodes in the nodemask allowed in current->mems_allowed?
......
...@@ -244,7 +244,7 @@ EXPORT_SYMBOL(rdmacg_uncharge); ...@@ -244,7 +244,7 @@ EXPORT_SYMBOL(rdmacg_uncharge);
* This function follows charging resource in hierarchical way. * This function follows charging resource in hierarchical way.
* It will fail if the charge would cause the new value to exceed the * It will fail if the charge would cause the new value to exceed the
* hierarchical limit. * hierarchical limit.
* Returns 0 if the charge succeded, otherwise -EAGAIN, -ENOMEM or -EINVAL. * Returns 0 if the charge succeeded, otherwise -EAGAIN, -ENOMEM or -EINVAL.
* Returns pointer to rdmacg for this resource when charging is successful. * Returns pointer to rdmacg for this resource when charging is successful.
* *
* Charger needs to account resources on two criteria. * Charger needs to account resources on two criteria.
......
...@@ -75,7 +75,7 @@ void cgroup_rstat_updated(struct cgroup *cgrp, int cpu) ...@@ -75,7 +75,7 @@ void cgroup_rstat_updated(struct cgroup *cgrp, int cpu)
* @root: root of the tree to traversal * @root: root of the tree to traversal
* @cpu: target cpu * @cpu: target cpu
* *
* Walks the udpated rstat_cpu tree on @cpu from @root. %NULL @pos starts * Walks the updated rstat_cpu tree on @cpu from @root. %NULL @pos starts
* the traversal and %NULL return indicates the end. During traversal, * the traversal and %NULL return indicates the end. During traversal,
* each returned cgroup is unlinked from the tree. Must be called with the * each returned cgroup is unlinked from the tree. Must be called with the
* matching cgroup_rstat_cpu_lock held. * matching cgroup_rstat_cpu_lock held.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment