sched/cpuacct: Initialize root cpuacct earlier
Now we don't need cpuacct_init(), and instead we just initialize root_cpuacct when it's defined. Signed-off-by: Li Zefan <lizefan@huawei.com> Cc: Tejun Heo <tj@kernel.org> Acked-by: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/51553834.9090701@huawei.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Родитель
7943e15a3e
Коммит
14c6d3c8a4
|
@ -6936,8 +6936,6 @@ void __init sched_init(void)
|
||||||
|
|
||||||
#endif /* CONFIG_CGROUP_SCHED */
|
#endif /* CONFIG_CGROUP_SCHED */
|
||||||
|
|
||||||
cpuacct_init();
|
|
||||||
|
|
||||||
for_each_possible_cpu(i) {
|
for_each_possible_cpu(i) {
|
||||||
struct rq *rq;
|
struct rq *rq;
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,10 @@ static inline struct cpuacct *parent_ca(struct cpuacct *ca)
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEFINE_PER_CPU(u64, root_cpuacct_cpuusage);
|
static DEFINE_PER_CPU(u64, root_cpuacct_cpuusage);
|
||||||
static struct cpuacct root_cpuacct;
|
static struct cpuacct root_cpuacct = {
|
||||||
|
.cpustat = &kernel_cpustat,
|
||||||
|
.cpuusage = &root_cpuacct_cpuusage,
|
||||||
|
};
|
||||||
|
|
||||||
/* create a new cpu accounting group */
|
/* create a new cpu accounting group */
|
||||||
static struct cgroup_subsys_state *cpuacct_css_alloc(struct cgroup *cgrp)
|
static struct cgroup_subsys_state *cpuacct_css_alloc(struct cgroup *cgrp)
|
||||||
|
@ -288,12 +291,6 @@ void cpuacct_account_field(struct task_struct *p, int index, u64 val)
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init cpuacct_init(void)
|
|
||||||
{
|
|
||||||
root_cpuacct.cpustat = &kernel_cpustat;
|
|
||||||
root_cpuacct.cpuusage = &root_cpuacct_cpuusage;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct cgroup_subsys cpuacct_subsys = {
|
struct cgroup_subsys cpuacct_subsys = {
|
||||||
.name = "cpuacct",
|
.name = "cpuacct",
|
||||||
.css_alloc = cpuacct_css_alloc,
|
.css_alloc = cpuacct_css_alloc,
|
||||||
|
|
|
@ -1,15 +1,10 @@
|
||||||
#ifdef CONFIG_CGROUP_CPUACCT
|
#ifdef CONFIG_CGROUP_CPUACCT
|
||||||
|
|
||||||
extern void cpuacct_init(void);
|
|
||||||
extern void cpuacct_charge(struct task_struct *tsk, u64 cputime);
|
extern void cpuacct_charge(struct task_struct *tsk, u64 cputime);
|
||||||
extern void cpuacct_account_field(struct task_struct *p, int index, u64 val);
|
extern void cpuacct_account_field(struct task_struct *p, int index, u64 val);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
static inline void cpuacct_init(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void cpuacct_charge(struct task_struct *tsk, u64 cputime)
|
static inline void cpuacct_charge(struct task_struct *tsk, u64 cputime)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче