Commit 089545f0c71bab6511395c2a060d7f81a99bad58
Committed by
Linus Torvalds
1 parent
088c4ec16a
Exists in
master
and in
7 other branches
[PATCH] s390: cputime_t fixes
There are some more places where the use of cputime_t instead of an integer type and the associated macros is necessary for the virtual cputime accounting on s390. Affected are the s390 specific appldata code and BSD process accounting. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Showing 2 changed files with 16 additions and 14 deletions Side-by-side Diff
arch/s390/appldata/appldata_os.c
... | ... | @@ -141,19 +141,19 @@ |
141 | 141 | j = 0; |
142 | 142 | for_each_online_cpu(i) { |
143 | 143 | os_data->os_cpu[j].per_cpu_user = |
144 | - kstat_cpu(i).cpustat.user; | |
144 | + cputime_to_jiffies(kstat_cpu(i).cpustat.user); | |
145 | 145 | os_data->os_cpu[j].per_cpu_nice = |
146 | - kstat_cpu(i).cpustat.nice; | |
146 | + cputime_to_jiffies(kstat_cpu(i).cpustat.nice); | |
147 | 147 | os_data->os_cpu[j].per_cpu_system = |
148 | - kstat_cpu(i).cpustat.system; | |
148 | + cputime_to_jiffies(kstat_cpu(i).cpustat.system); | |
149 | 149 | os_data->os_cpu[j].per_cpu_idle = |
150 | - kstat_cpu(i).cpustat.idle; | |
150 | + cputime_to_jiffies(kstat_cpu(i).cpustat.idle); | |
151 | 151 | os_data->os_cpu[j].per_cpu_irq = |
152 | - kstat_cpu(i).cpustat.irq; | |
152 | + cputime_to_jiffies(kstat_cpu(i).cpustat.irq); | |
153 | 153 | os_data->os_cpu[j].per_cpu_softirq = |
154 | - kstat_cpu(i).cpustat.softirq; | |
154 | + cputime_to_jiffies(kstat_cpu(i).cpustat.softirq); | |
155 | 155 | os_data->os_cpu[j].per_cpu_iowait = |
156 | - kstat_cpu(i).cpustat.iowait; | |
156 | + cputime_to_jiffies(kstat_cpu(i).cpustat.iowait); | |
157 | 157 | j++; |
158 | 158 | } |
159 | 159 |
kernel/acct.c
... | ... | @@ -427,6 +427,7 @@ |
427 | 427 | u64 elapsed; |
428 | 428 | u64 run_time; |
429 | 429 | struct timespec uptime; |
430 | + unsigned long jiffies; | |
430 | 431 | |
431 | 432 | /* |
432 | 433 | * First check to see if there is enough free_space to continue |
... | ... | @@ -467,12 +468,12 @@ |
467 | 468 | #endif |
468 | 469 | do_div(elapsed, AHZ); |
469 | 470 | ac.ac_btime = xtime.tv_sec - elapsed; |
470 | - ac.ac_utime = encode_comp_t(jiffies_to_AHZ( | |
471 | - current->signal->utime + | |
472 | - current->group_leader->utime)); | |
473 | - ac.ac_stime = encode_comp_t(jiffies_to_AHZ( | |
474 | - current->signal->stime + | |
475 | - current->group_leader->stime)); | |
471 | + jiffies = cputime_to_jiffies(cputime_add(current->group_leader->utime, | |
472 | + current->signal->utime)); | |
473 | + ac.ac_utime = encode_comp_t(jiffies_to_AHZ(jiffies)); | |
474 | + jiffies = cputime_to_jiffies(cputime_add(current->group_leader->stime, | |
475 | + current->signal->stime)); | |
476 | + ac.ac_stime = encode_comp_t(jiffies_to_AHZ(jiffies)); | |
476 | 477 | /* we really need to bite the bullet and change layout */ |
477 | 478 | ac.ac_uid = current->uid; |
478 | 479 | ac.ac_gid = current->gid; |
... | ... | @@ -580,7 +581,8 @@ |
580 | 581 | void acct_update_integrals(struct task_struct *tsk) |
581 | 582 | { |
582 | 583 | if (likely(tsk->mm)) { |
583 | - long delta = tsk->stime - tsk->acct_stimexpd; | |
584 | + long delta = | |
585 | + cputime_to_jiffies(tsk->stime) - tsk->acct_stimexpd; | |
584 | 586 | |
585 | 587 | if (delta == 0) |
586 | 588 | return; |