mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-25 22:29:43 +00:00
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
This commit is contained in:
commit
2fce7ea0e0
@ -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,
|
|||||||
/**
|
/**
|
||||||
* 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);
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* 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 {
|
|||||||
* 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 @@ out:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 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)
|
|||||||
/*
|
/*
|
||||||
* 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,
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* 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);
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
//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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
/* 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);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user