diff options
author | Li Zefan <lizefan@huawei.com> | 2013-03-29 02:38:13 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-04-10 07:54:19 -0400 |
commit | d1712796a880bea0a44739941116001923f3275b (patch) | |
tree | fe7aaf8dcf6569f05fc741c01bd7beb5633244f6 /kernel/sched/cpuacct.c | |
parent | 5f40d804325e925409907e29f46ecb012090b6c2 (diff) |
sched/cpuacct: Clean up cpuacct.h
Now most of the code in cpuacct.h can be moved to cpuacct.c
Signed-off-by: Li Zefan <lizefan@huawei.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/515536D5.2080401@huawei.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sched/cpuacct.c')
-rw-r--r-- | kernel/sched/cpuacct.c | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c index 071ae8d08181..9305fd2f8cf9 100644 --- a/kernel/sched/cpuacct.c +++ b/kernel/sched/cpuacct.c | |||
@@ -16,7 +16,49 @@ | |||
16 | * (balbir@in.ibm.com). | 16 | * (balbir@in.ibm.com). |
17 | */ | 17 | */ |
18 | 18 | ||
19 | struct cpuacct root_cpuacct; | 19 | /* Time spent by the tasks of the cpu accounting group executing in ... */ |
20 | enum cpuacct_stat_index { | ||
21 | CPUACCT_STAT_USER, /* ... user mode */ | ||
22 | CPUACCT_STAT_SYSTEM, /* ... kernel mode */ | ||
23 | |||
24 | CPUACCT_STAT_NSTATS, | ||
25 | }; | ||
26 | |||
27 | /* track cpu usage of a group of tasks and its child groups */ | ||
28 | struct cpuacct { | ||
29 | struct cgroup_subsys_state css; | ||
30 | /* cpuusage holds pointer to a u64-type object on every cpu */ | ||
31 | u64 __percpu *cpuusage; | ||
32 | struct kernel_cpustat __percpu *cpustat; | ||
33 | }; | ||
34 | |||
35 | /* return cpu accounting group corresponding to this container */ | ||
36 | static inline struct cpuacct *cgroup_ca(struct cgroup *cgrp) | ||
37 | { | ||
38 | return container_of(cgroup_subsys_state(cgrp, cpuacct_subsys_id), | ||
39 | struct cpuacct, css); | ||
40 | } | ||
41 | |||
42 | /* return cpu accounting group to which this task belongs */ | ||
43 | static inline struct cpuacct *task_ca(struct task_struct *tsk) | ||
44 | { | ||
45 | return container_of(task_subsys_state(tsk, cpuacct_subsys_id), | ||
46 | struct cpuacct, css); | ||
47 | } | ||
48 | |||
49 | static inline struct cpuacct *__parent_ca(struct cpuacct *ca) | ||
50 | { | ||
51 | return cgroup_ca(ca->css.cgroup->parent); | ||
52 | } | ||
53 | |||
54 | static inline struct cpuacct *parent_ca(struct cpuacct *ca) | ||
55 | { | ||
56 | if (!ca->css.cgroup->parent) | ||
57 | return NULL; | ||
58 | return cgroup_ca(ca->css.cgroup->parent); | ||
59 | } | ||
60 | |||
61 | static struct cpuacct root_cpuacct; | ||
20 | 62 | ||
21 | /* create a new cpu accounting group */ | 63 | /* create a new cpu accounting group */ |
22 | static struct cgroup_subsys_state *cpuacct_css_alloc(struct cgroup *cgrp) | 64 | static struct cgroup_subsys_state *cpuacct_css_alloc(struct cgroup *cgrp) |