diff options
| author | Li Zefan <lizefan@huawei.com> | 2013-03-29 02:44:04 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2013-04-10 07:54:20 -0400 |
| commit | 14c6d3c8a47ced185b6375c4940b5b393f1a294e (patch) | |
| tree | 1e7bb1aa142f89ed37988d432bffec7b8bf502f4 | |
| parent | 7943e15a3e91db78a7a3fbc84e45cf9d1c7c7d23 (diff) | |
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>
| -rw-r--r-- | kernel/sched/core.c | 2 | ||||
| -rw-r--r-- | kernel/sched/cpuacct.c | 11 | ||||
| -rw-r--r-- | kernel/sched/cpuacct.h | 5 |
3 files changed, 4 insertions, 14 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 92930a89529d..ee8c1bd703fe 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
| @@ -6936,8 +6936,6 @@ void __init sched_init(void) | |||
| 6936 | 6936 | ||
| 6937 | #endif /* CONFIG_CGROUP_SCHED */ | 6937 | #endif /* CONFIG_CGROUP_SCHED */ |
| 6938 | 6938 | ||
| 6939 | cpuacct_init(); | ||
| 6940 | |||
| 6941 | for_each_possible_cpu(i) { | 6939 | for_each_possible_cpu(i) { |
| 6942 | struct rq *rq; | 6940 | struct rq *rq; |
| 6943 | 6941 | ||
diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c index a691c4dd65be..04255814a0ed 100644 --- a/kernel/sched/cpuacct.c +++ b/kernel/sched/cpuacct.c | |||
| @@ -59,7 +59,10 @@ static inline struct cpuacct *parent_ca(struct cpuacct *ca) | |||
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | static DEFINE_PER_CPU(u64, root_cpuacct_cpuusage); | 61 | static DEFINE_PER_CPU(u64, root_cpuacct_cpuusage); |
| 62 | static struct cpuacct root_cpuacct; | 62 | static struct cpuacct root_cpuacct = { |
| 63 | .cpustat = &kernel_cpustat, | ||
| 64 | .cpuusage = &root_cpuacct_cpuusage, | ||
| 65 | }; | ||
| 63 | 66 | ||
| 64 | /* create a new cpu accounting group */ | 67 | /* create a new cpu accounting group */ |
| 65 | static struct cgroup_subsys_state *cpuacct_css_alloc(struct cgroup *cgrp) | 68 | 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) | |||
| 288 | rcu_read_unlock(); | 291 | rcu_read_unlock(); |
| 289 | } | 292 | } |
| 290 | 293 | ||
| 291 | void __init cpuacct_init(void) | ||
| 292 | { | ||
| 293 | root_cpuacct.cpustat = &kernel_cpustat; | ||
| 294 | root_cpuacct.cpuusage = &root_cpuacct_cpuusage; | ||
| 295 | } | ||
| 296 | |||
| 297 | struct cgroup_subsys cpuacct_subsys = { | 294 | struct cgroup_subsys cpuacct_subsys = { |
| 298 | .name = "cpuacct", | 295 | .name = "cpuacct", |
| 299 | .css_alloc = cpuacct_css_alloc, | 296 | .css_alloc = cpuacct_css_alloc, |
diff --git a/kernel/sched/cpuacct.h b/kernel/sched/cpuacct.h index 51cd76eb4f0f..ed605624a5e7 100644 --- a/kernel/sched/cpuacct.h +++ b/kernel/sched/cpuacct.h | |||
| @@ -1,15 +1,10 @@ | |||
| 1 | #ifdef CONFIG_CGROUP_CPUACCT | 1 | #ifdef CONFIG_CGROUP_CPUACCT |
| 2 | 2 | ||
| 3 | extern void cpuacct_init(void); | ||
| 4 | extern void cpuacct_charge(struct task_struct *tsk, u64 cputime); | 3 | extern void cpuacct_charge(struct task_struct *tsk, u64 cputime); |
| 5 | extern void cpuacct_account_field(struct task_struct *p, int index, u64 val); | 4 | extern void cpuacct_account_field(struct task_struct *p, int index, u64 val); |
| 6 | 5 | ||
| 7 | #else | 6 | #else |
| 8 | 7 | ||
| 9 | static inline void cpuacct_init(void) | ||
| 10 | { | ||
| 11 | } | ||
| 12 | |||
| 13 | static inline void cpuacct_charge(struct task_struct *tsk, u64 cputime) | 8 | static inline void cpuacct_charge(struct task_struct *tsk, u64 cputime) |
| 14 | { | 9 | { |
| 15 | } | 10 | } |
