[PATCH] s390: cputime_t fixes
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 6 Jan 2006 08:19:12 +0000 (00:19 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Jan 2006 16:33:49 +0000 (08:33 -0800)
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>
arch/s390/appldata/appldata_os.c
kernel/acct.c

index e0a476bf4fd644691bf5b50e93db05a2367b59bd..99ddd3bf2fbaac6bb2e5ef49fbd43e7c16bac0f2 100644 (file)
@@ -141,19 +141,19 @@ static void appldata_get_os_data(void *data)
        j = 0;
        for_each_online_cpu(i) {
                os_data->os_cpu[j].per_cpu_user =
-                                       kstat_cpu(i).cpustat.user;
+                       cputime_to_jiffies(kstat_cpu(i).cpustat.user);
                os_data->os_cpu[j].per_cpu_nice =
-                                       kstat_cpu(i).cpustat.nice;
+                       cputime_to_jiffies(kstat_cpu(i).cpustat.nice);
                os_data->os_cpu[j].per_cpu_system =
-                                       kstat_cpu(i).cpustat.system;
+                       cputime_to_jiffies(kstat_cpu(i).cpustat.system);
                os_data->os_cpu[j].per_cpu_idle =
-                                       kstat_cpu(i).cpustat.idle;
+                       cputime_to_jiffies(kstat_cpu(i).cpustat.idle);
                os_data->os_cpu[j].per_cpu_irq =
-                                       kstat_cpu(i).cpustat.irq;
+                       cputime_to_jiffies(kstat_cpu(i).cpustat.irq);
                os_data->os_cpu[j].per_cpu_softirq =
-                                       kstat_cpu(i).cpustat.softirq;
+                       cputime_to_jiffies(kstat_cpu(i).cpustat.softirq);
                os_data->os_cpu[j].per_cpu_iowait =
-                                       kstat_cpu(i).cpustat.iowait;
+                       cputime_to_jiffies(kstat_cpu(i).cpustat.iowait);
                j++;
        }
 
index 6312d6bd43e3101648c7b5f3cbf9dc91e5a433bf..38d57fa6b78fe8d02c6a053f9f06b6902a0b41c2 100644 (file)
@@ -427,6 +427,7 @@ static void do_acct_process(long exitcode, struct file *file)
        u64 elapsed;
        u64 run_time;
        struct timespec uptime;
+       unsigned long jiffies;
 
        /*
         * First check to see if there is enough free_space to continue
@@ -467,12 +468,12 @@ static void do_acct_process(long exitcode, struct file *file)
 #endif
        do_div(elapsed, AHZ);
        ac.ac_btime = xtime.tv_sec - elapsed;
-       ac.ac_utime = encode_comp_t(jiffies_to_AHZ(
-                                           current->signal->utime +
-                                           current->group_leader->utime));
-       ac.ac_stime = encode_comp_t(jiffies_to_AHZ(
-                                           current->signal->stime +
-                                           current->group_leader->stime));
+       jiffies = cputime_to_jiffies(cputime_add(current->group_leader->utime,
+                                                current->signal->utime));
+       ac.ac_utime = encode_comp_t(jiffies_to_AHZ(jiffies));
+       jiffies = cputime_to_jiffies(cputime_add(current->group_leader->stime,
+                                                current->signal->stime));
+       ac.ac_stime = encode_comp_t(jiffies_to_AHZ(jiffies));
        /* we really need to bite the bullet and change layout */
        ac.ac_uid = current->uid;
        ac.ac_gid = current->gid;
@@ -580,7 +581,8 @@ void acct_process(long exitcode)
 void acct_update_integrals(struct task_struct *tsk)
 {
        if (likely(tsk->mm)) {
-               long delta = tsk->stime - tsk->acct_stimexpd;
+               long delta =
+                       cputime_to_jiffies(tsk->stime) - tsk->acct_stimexpd;
 
                if (delta == 0)
                        return;