diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-12-31 09:11:41 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-12-31 09:11:48 -0500 |
commit | 9cfb9b3c3a7361c793c031e9c3583b177ac5debd (patch) | |
tree | b735c71e6fee3fd1464c21ce53f93d98ceddf90d /drivers | |
parent | 6f43092441bda528dd38f2dc6c1e2522c5079fb7 (diff) |
[PATCH] improve idle cputime accounting
Distinguish the cputime of the idle process where idle is actually using
cpu cycles from the cputime where idle is sleeping on an enabled wait psw.
The former is accounted as system time, the later as idle time.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/s390/cio/cio.c | 2 | ||||
-rw-r--r-- | drivers/s390/s390mach.c | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index 8a8df7552969..06b71823f399 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c | |||
@@ -632,8 +632,8 @@ do_IRQ (struct pt_regs *regs) | |||
632 | struct pt_regs *old_regs; | 632 | struct pt_regs *old_regs; |
633 | 633 | ||
634 | old_regs = set_irq_regs(regs); | 634 | old_regs = set_irq_regs(regs); |
635 | irq_enter(); | ||
636 | s390_idle_check(); | 635 | s390_idle_check(); |
636 | irq_enter(); | ||
637 | if (S390_lowcore.int_clock >= S390_lowcore.clock_comparator) | 637 | if (S390_lowcore.int_clock >= S390_lowcore.clock_comparator) |
638 | /* Serve timer interrupts first. */ | 638 | /* Serve timer interrupts first. */ |
639 | clock_comparator_work(); | 639 | clock_comparator_work(); |
diff --git a/drivers/s390/s390mach.c b/drivers/s390/s390mach.c index 834e9ee7e934..92b0417f8e12 100644 --- a/drivers/s390/s390mach.c +++ b/drivers/s390/s390mach.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <asm/etr.h> | 18 | #include <asm/etr.h> |
19 | #include <asm/lowcore.h> | 19 | #include <asm/lowcore.h> |
20 | #include <asm/cio.h> | 20 | #include <asm/cio.h> |
21 | #include <asm/cpu.h> | ||
21 | #include "s390mach.h" | 22 | #include "s390mach.h" |
22 | 23 | ||
23 | static struct semaphore m_sem; | 24 | static struct semaphore m_sem; |
@@ -369,6 +370,8 @@ s390_do_machine_check(struct pt_regs *regs) | |||
369 | 370 | ||
370 | lockdep_off(); | 371 | lockdep_off(); |
371 | 372 | ||
373 | s390_idle_check(); | ||
374 | |||
372 | mci = (struct mci *) &S390_lowcore.mcck_interruption_code; | 375 | mci = (struct mci *) &S390_lowcore.mcck_interruption_code; |
373 | mcck = &__get_cpu_var(cpu_mcck); | 376 | mcck = &__get_cpu_var(cpu_mcck); |
374 | umode = user_mode(regs); | 377 | umode = user_mode(regs); |