Commit 2fce7ea0 authored by Linus Torvalds's avatar Linus Torvalds

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

Pull cgroup updates from Tejun Heo:
 "All trivial cleanups without meaningful behavior changes"

* 'for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
  cgroup: cleanup comments
  cgroup: Fix cgroup_can_fork() and cgroup_post_fork() kernel-doc comment
  cgroup: rstat: retrieve current bstat to delta directly
  cgroup: rstat: use same convention to assign cgroup_base_stat
parents 78383162 f9da322e
...@@ -6243,6 +6243,7 @@ static void cgroup_css_set_put_fork(struct kernel_clone_args *kargs) ...@@ -6243,6 +6243,7 @@ static void cgroup_css_set_put_fork(struct kernel_clone_args *kargs)
/** /**
* cgroup_can_fork - called on a new task before the process is exposed * cgroup_can_fork - called on a new task before the process is exposed
* @child: the child process * @child: the child process
* @kargs: the arguments passed to create the child process
* *
* This prepares a new css_set for the child process which the child will * This prepares a new css_set for the child process which the child will
* be attached to in cgroup_post_fork(). * be attached to in cgroup_post_fork().
...@@ -6305,6 +6306,7 @@ void cgroup_cancel_fork(struct task_struct *child, ...@@ -6305,6 +6306,7 @@ void cgroup_cancel_fork(struct task_struct *child,
/** /**
* cgroup_post_fork - finalize cgroup setup for the child process * cgroup_post_fork - finalize cgroup setup for the child process
* @child: the child process * @child: the child process
* @kargs: the arguments passed to create the child process
* *
* Attach the child process to its css_set calling the subsystem fork() * Attach the child process to its css_set calling the subsystem fork()
* callbacks. * callbacks.
......
...@@ -71,7 +71,7 @@ DEFINE_STATIC_KEY_FALSE(cpusets_enabled_key); ...@@ -71,7 +71,7 @@ DEFINE_STATIC_KEY_FALSE(cpusets_enabled_key);
/* /*
* There could be abnormal cpuset configurations for cpu or memory * There could be abnormal cpuset configurations for cpu or memory
* node binding, add this key to provide a quick low-cost judgement * node binding, add this key to provide a quick low-cost judgment
* of the situation. * of the situation.
*/ */
DEFINE_STATIC_KEY_FALSE(cpusets_insane_config_key); DEFINE_STATIC_KEY_FALSE(cpusets_insane_config_key);
...@@ -1181,7 +1181,7 @@ enum subparts_cmd { ...@@ -1181,7 +1181,7 @@ enum subparts_cmd {
* effective_cpus. The function will return 0 if all the CPUs listed in * effective_cpus. The function will return 0 if all the CPUs listed in
* cpus_allowed can be granted or an error code will be returned. * cpus_allowed can be granted or an error code will be returned.
* *
* For partcmd_disable, the cpuset is being transofrmed from a partition * For partcmd_disable, the cpuset is being transformed from a partition
* root back to a non-partition root. Any CPUs in cpus_allowed that are in * root back to a non-partition root. Any CPUs in cpus_allowed that are in
* parent's subparts_cpus will be taken away from that cpumask and put back * parent's subparts_cpus will be taken away from that cpumask and put back
* into parent's effective_cpus. 0 should always be returned. * into parent's effective_cpus. 0 should always be returned.
...@@ -2027,7 +2027,7 @@ static int update_flag(cpuset_flagbits_t bit, struct cpuset *cs, ...@@ -2027,7 +2027,7 @@ static int update_flag(cpuset_flagbits_t bit, struct cpuset *cs,
} }
/* /*
* update_prstate - update partititon_root_state * update_prstate - update partition_root_state
* cs: the cpuset to update * cs: the cpuset to update
* new_prs: new partition root state * new_prs: new partition root state
* *
...@@ -2879,7 +2879,7 @@ static int cpuset_css_online(struct cgroup_subsys_state *css) ...@@ -2879,7 +2879,7 @@ static int cpuset_css_online(struct cgroup_subsys_state *css)
/* /*
* Clone @parent's configuration if CGRP_CPUSET_CLONE_CHILDREN is * Clone @parent's configuration if CGRP_CPUSET_CLONE_CHILDREN is
* set. This flag handling is implemented in cgroup core for * set. This flag handling is implemented in cgroup core for
* histrical reasons - the flag may be specified during mount. * historical reasons - the flag may be specified during mount.
* *
* Currently, if any sibling cpusets have exclusive cpus or mem, we * Currently, if any sibling cpusets have exclusive cpus or mem, we
* refuse to clone the configuration - thereby refusing the task to * refuse to clone the configuration - thereby refusing the task to
...@@ -3076,7 +3076,7 @@ hotplug_update_tasks_legacy(struct cpuset *cs, ...@@ -3076,7 +3076,7 @@ hotplug_update_tasks_legacy(struct cpuset *cs,
/* /*
* Don't call update_tasks_cpumask() if the cpuset becomes empty, * Don't call update_tasks_cpumask() if the cpuset becomes empty,
* as the tasks will be migratecd to an ancestor. * as the tasks will be migrated to an ancestor.
*/ */
if (cpus_updated && !cpumask_empty(cs->cpus_allowed)) if (cpus_updated && !cpumask_empty(cs->cpus_allowed))
update_tasks_cpumask(cs); update_tasks_cpumask(cs);
......
//SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <linux/cgroup.h> #include <linux/cgroup.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/sched/task.h> #include <linux/sched/task.h>
......
...@@ -315,7 +315,7 @@ static void cgroup_base_stat_flush(struct cgroup *cgrp, int cpu) ...@@ -315,7 +315,7 @@ static void cgroup_base_stat_flush(struct cgroup *cgrp, int cpu)
{ {
struct cgroup_rstat_cpu *rstatc = cgroup_rstat_cpu(cgrp, cpu); struct cgroup_rstat_cpu *rstatc = cgroup_rstat_cpu(cgrp, cpu);
struct cgroup *parent = cgroup_parent(cgrp); struct cgroup *parent = cgroup_parent(cgrp);
struct cgroup_base_stat cur, delta; struct cgroup_base_stat delta;
unsigned seq; unsigned seq;
/* Root-level stats are sourced from system-wide CPU stats */ /* Root-level stats are sourced from system-wide CPU stats */
...@@ -325,11 +325,10 @@ static void cgroup_base_stat_flush(struct cgroup *cgrp, int cpu) ...@@ -325,11 +325,10 @@ static void cgroup_base_stat_flush(struct cgroup *cgrp, int cpu)
/* fetch the current per-cpu values */ /* fetch the current per-cpu values */
do { do {
seq = __u64_stats_fetch_begin(&rstatc->bsync); seq = __u64_stats_fetch_begin(&rstatc->bsync);
cur.cputime = rstatc->bstat.cputime; delta = rstatc->bstat;
} while (__u64_stats_fetch_retry(&rstatc->bsync, seq)); } while (__u64_stats_fetch_retry(&rstatc->bsync, seq));
/* propagate percpu delta to global */ /* propagate percpu delta to global */
delta = cur;
cgroup_base_stat_sub(&delta, &rstatc->last_bstat); cgroup_base_stat_sub(&delta, &rstatc->last_bstat);
cgroup_base_stat_add(&cgrp->bstat, &delta); cgroup_base_stat_add(&cgrp->bstat, &delta);
cgroup_base_stat_add(&rstatc->last_bstat, &delta); cgroup_base_stat_add(&rstatc->last_bstat, &delta);
......
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