Commit 089545f0c71bab6511395c2a060d7f81a99bad58

Authored by Martin Schwidefsky
Committed by Linus Torvalds
1 parent 088c4ec16a

[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  
... ... @@ -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;