提交 089545f0 编写于 作者: M Martin Schwidefsky 提交者: Linus Torvalds

[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: NMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 088c4ec1
...@@ -141,19 +141,19 @@ static void appldata_get_os_data(void *data) ...@@ -141,19 +141,19 @@ static void appldata_get_os_data(void *data)
j = 0; j = 0;
for_each_online_cpu(i) { for_each_online_cpu(i) {
os_data->os_cpu[j].per_cpu_user = 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 = 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 = 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 = 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 = 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 = 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 = os_data->os_cpu[j].per_cpu_iowait =
kstat_cpu(i).cpustat.iowait; cputime_to_jiffies(kstat_cpu(i).cpustat.iowait);
j++; j++;
} }
......
...@@ -427,6 +427,7 @@ static void do_acct_process(long exitcode, struct file *file) ...@@ -427,6 +427,7 @@ static void do_acct_process(long exitcode, struct file *file)
u64 elapsed; u64 elapsed;
u64 run_time; u64 run_time;
struct timespec uptime; struct timespec uptime;
unsigned long jiffies;
/* /*
* First check to see if there is enough free_space to continue * 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) ...@@ -467,12 +468,12 @@ static void do_acct_process(long exitcode, struct file *file)
#endif #endif
do_div(elapsed, AHZ); do_div(elapsed, AHZ);
ac.ac_btime = xtime.tv_sec - elapsed; ac.ac_btime = xtime.tv_sec - elapsed;
ac.ac_utime = encode_comp_t(jiffies_to_AHZ( jiffies = cputime_to_jiffies(cputime_add(current->group_leader->utime,
current->signal->utime + current->signal->utime));
current->group_leader->utime)); ac.ac_utime = encode_comp_t(jiffies_to_AHZ(jiffies));
ac.ac_stime = encode_comp_t(jiffies_to_AHZ( jiffies = cputime_to_jiffies(cputime_add(current->group_leader->stime,
current->signal->stime + current->signal->stime));
current->group_leader->stime)); ac.ac_stime = encode_comp_t(jiffies_to_AHZ(jiffies));
/* we really need to bite the bullet and change layout */ /* we really need to bite the bullet and change layout */
ac.ac_uid = current->uid; ac.ac_uid = current->uid;
ac.ac_gid = current->gid; ac.ac_gid = current->gid;
...@@ -580,7 +581,8 @@ void acct_process(long exitcode) ...@@ -580,7 +581,8 @@ void acct_process(long exitcode)
void acct_update_integrals(struct task_struct *tsk) void acct_update_integrals(struct task_struct *tsk)
{ {
if (likely(tsk->mm)) { if (likely(tsk->mm)) {
long delta = tsk->stime - tsk->acct_stimexpd; long delta =
cputime_to_jiffies(tsk->stime) - tsk->acct_stimexpd;
if (delta == 0) if (delta == 0)
return; return;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册