aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi Zefan <lizefan@huawei.com>2013-03-29 02:44:04 -0400
committerIngo Molnar <mingo@kernel.org>2013-04-10 07:54:20 -0400
commit14c6d3c8a47ced185b6375c4940b5b393f1a294e (patch)
tree1e7bb1aa142f89ed37988d432bffec7b8bf502f4
parent7943e15a3e91db78a7a3fbc84e45cf9d1c7c7d23 (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.c2
-rw-r--r--kernel/sched/cpuacct.c11
-rw-r--r--kernel/sched/cpuacct.h5
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
61static DEFINE_PER_CPU(u64, root_cpuacct_cpuusage); 61static DEFINE_PER_CPU(u64, root_cpuacct_cpuusage);
62static struct cpuacct root_cpuacct; 62static 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 */
65static struct cgroup_subsys_state *cpuacct_css_alloc(struct cgroup *cgrp) 68static 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
291void __init cpuacct_init(void)
292{
293 root_cpuacct.cpustat = &kernel_cpustat;
294 root_cpuacct.cpuusage = &root_cpuacct_cpuusage;
295}
296
297struct cgroup_subsys cpuacct_subsys = { 294struct 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
3extern void cpuacct_init(void);
4extern void cpuacct_charge(struct task_struct *tsk, u64 cputime); 3extern void cpuacct_charge(struct task_struct *tsk, u64 cputime);
5extern void cpuacct_account_field(struct task_struct *p, int index, u64 val); 4extern void cpuacct_account_field(struct task_struct *p, int index, u64 val);
6 5
7#else 6#else
8 7
9static inline void cpuacct_init(void)
10{
11}
12
13static inline void cpuacct_charge(struct task_struct *tsk, u64 cputime) 8static inline void cpuacct_charge(struct task_struct *tsk, u64 cputime)
14{ 9{
15} 10}