diff options
author | Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> | 2009-12-02 03:26:47 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-12-02 11:32:39 -0500 |
commit | d99ca3b977fc5a93141304f571475c2af9e6c1c5 (patch) | |
tree | 7665ebdafcef46c310055021562e6629f59eafd5 /kernel | |
parent | be8147e68625a1adb111acfd6b98a492be4b74d0 (diff) |
sched, cputime: Cleanups related to task_times()
- Remove if({u,s}t)s because no one call it with NULL now.
- Use cputime_{add,sub}().
- Add ifndef-endif for prev_{u,s}time since they are used
only when !VIRT_CPU_ACCOUNTING.
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Spencer Candland <spencer@bluehost.com>
Cc: Americo Wang <xiyou.wangcong@gmail.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
LKML-Reference: <4B1624C7.7040302@jp.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/fork.c | 2 | ||||
-rw-r--r-- | kernel/sched.c | 16 |
2 files changed, 8 insertions, 10 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 166b8c49257c..ad7cb6d1193c 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -1066,8 +1066,10 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1066 | p->gtime = cputime_zero; | 1066 | p->gtime = cputime_zero; |
1067 | p->utimescaled = cputime_zero; | 1067 | p->utimescaled = cputime_zero; |
1068 | p->stimescaled = cputime_zero; | 1068 | p->stimescaled = cputime_zero; |
1069 | #ifndef CONFIG_VIRT_CPU_ACCOUNTING | ||
1069 | p->prev_utime = cputime_zero; | 1070 | p->prev_utime = cputime_zero; |
1070 | p->prev_stime = cputime_zero; | 1071 | p->prev_stime = cputime_zero; |
1072 | #endif | ||
1071 | 1073 | ||
1072 | p->default_timer_slack_ns = current->timer_slack_ns; | 1074 | p->default_timer_slack_ns = current->timer_slack_ns; |
1073 | 1075 | ||
diff --git a/kernel/sched.c b/kernel/sched.c index 4883fee99314..17e2c1db2bde 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -5184,10 +5184,8 @@ void account_idle_ticks(unsigned long ticks) | |||
5184 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 5184 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
5185 | void task_times(struct task_struct *p, cputime_t *ut, cputime_t *st) | 5185 | void task_times(struct task_struct *p, cputime_t *ut, cputime_t *st) |
5186 | { | 5186 | { |
5187 | if (ut) | 5187 | *ut = p->utime; |
5188 | *ut = p->utime; | 5188 | *st = p->stime; |
5189 | if (st) | ||
5190 | *st = p->stime; | ||
5191 | } | 5189 | } |
5192 | #else | 5190 | #else |
5193 | 5191 | ||
@@ -5197,7 +5195,7 @@ void task_times(struct task_struct *p, cputime_t *ut, cputime_t *st) | |||
5197 | 5195 | ||
5198 | void task_times(struct task_struct *p, cputime_t *ut, cputime_t *st) | 5196 | void task_times(struct task_struct *p, cputime_t *ut, cputime_t *st) |
5199 | { | 5197 | { |
5200 | cputime_t rtime, utime = p->utime, total = utime + p->stime; | 5198 | cputime_t rtime, utime = p->utime, total = cputime_add(utime, p->stime); |
5201 | 5199 | ||
5202 | /* | 5200 | /* |
5203 | * Use CFS's precise accounting: | 5201 | * Use CFS's precise accounting: |
@@ -5217,12 +5215,10 @@ void task_times(struct task_struct *p, cputime_t *ut, cputime_t *st) | |||
5217 | * Compare with previous values, to keep monotonicity: | 5215 | * Compare with previous values, to keep monotonicity: |
5218 | */ | 5216 | */ |
5219 | p->prev_utime = max(p->prev_utime, utime); | 5217 | p->prev_utime = max(p->prev_utime, utime); |
5220 | p->prev_stime = max(p->prev_stime, rtime - p->prev_utime); | 5218 | p->prev_stime = max(p->prev_stime, cputime_sub(rtime, p->prev_utime)); |
5221 | 5219 | ||
5222 | if (ut) | 5220 | *ut = p->prev_utime; |
5223 | *ut = p->prev_utime; | 5221 | *st = p->prev_stime; |
5224 | if (st) | ||
5225 | *st = p->prev_stime; | ||
5226 | } | 5222 | } |
5227 | #endif | 5223 | #endif |
5228 | 5224 | ||