linux/arch/s390/kernel
Martin Schwidefsky 6377981faf [S390] idle time accounting vs. machine checks
A machine check can interrupt the i/o and external interrupt handler
anytime. If the machine check occurs while the interrupt handler is
waking up from idle vtime_start_cpu can get executed a second time
and the int_clock / async_enter_timer values in the lowcore get
clobbered. This can confuse the cpu time accounting.
To fix this problem two changes are needed. First the machine check
handler has to use its own copies of int_clock and async_enter_timer,
named mcck_clock and mcck_enter_timer. Second the nested execution
of vtime_start_cpu has to be prevented. This is done in s390_idle_check
by checking the wait bit in the program status word.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2010-05-17 10:00:15 +02:00
..
vdso32 [S390] vdso: use ntp adjusted clock multiplier 2010-04-22 17:17:19 +02:00
vdso64 [S390] vdso: use ntp adjusted clock multiplier 2010-04-22 17:17:19 +02:00
asm-offsets.c [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00
audit.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
audit.h [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
base.S [S390] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
bitmap.c [S390] move EXPORT_SYMBOLs to definitions 2009-03-26 15:24:11 +01:00
compat_audit.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
compat_exec_domain.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
compat_linux.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
compat_linux.h Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 2009-12-09 19:01:47 -08:00
compat_ptrace.h [S390] Expose a constant for the number of words representing the CRs 2009-03-26 15:24:25 +01:00
compat_signal.c [S390] 64-bit register support for 31-bit processes 2009-10-06 10:35:10 +02:00
compat_wrapper.S improve sys_newuname() for compat architectures 2010-03-12 15:52:32 -08:00
cpcmd.c [S390] convert cpcmd printks to pr_xxx macros. 2008-12-25 13:39:19 +01:00
crash.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
debug.c tree-wide: convert open calls to remove spaces to skip_spaces() lib function 2009-12-15 08:53:32 -08:00
diag.c [S390] vmur: fix diag14 exceptions with addresses > 2GB. 2007-08-22 13:51:47 +02:00
dis.c [S390] add z9-ec/z10 instruction to kernel disassembler 2010-02-26 22:37:32 +01:00
early.c [S390] nss: add missing .previous statement to asm function 2010-04-09 13:43:02 +02:00
ebcdic.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
entry64.S [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00
entry.h improve sys_newuname() for compat architectures 2010-03-12 15:52:32 -08:00
entry.S [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00
ftrace.c Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-02-28 10:17:55 -08:00
head31.S [S390] correct address of _stext with CONFIG_SHARED_KERNEL=y 2010-05-12 09:32:26 +02:00
head64.S [S390] correct address of _stext with CONFIG_SHARED_KERNEL=y 2010-05-12 09:32:26 +02:00
head.S [S390] More cleanup for struct _lowcore 2010-05-17 10:00:15 +02:00
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
ipl.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
irq.c [S390] Fix init irq proc build break. 2009-02-11 10:37:39 +01:00
kprobes.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
machine_kexec.c [S390] smp: always reboot on cpu 0 2010-02-26 22:37:30 +01:00
Makefile [S390] add support for compressed kernels 2010-02-26 22:37:33 +01:00
mcount64.S [S390] improve mcount code 2009-09-11 10:29:43 +02:00
mcount.S [S390] improve mcount code 2009-09-11 10:29:43 +02:00
mem_detect.c [S390] s390: hibernation support for s390 2009-06-16 10:31:22 +02:00
module.c [S390] module: fix memory leak in s390 module loader 2009-10-06 10:35:06 +02:00
nmi.c [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00
process.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
processor.c [S390] More cleanup for struct _lowcore 2010-05-17 10:00:15 +02:00
ptrace.c [S390] ptrace: fix return value of do_syscall_trace_enter() 2010-05-12 09:32:26 +02:00
reipl64.S [S390] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
reipl.S [S390] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
relocate_kernel64.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
relocate_kernel.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
s390_ext.c [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00
s390_ksyms.c [S390] move EXPORT_SYMBOLs to definitions 2009-03-26 15:24:11 +01:00
sclp.S Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
setup.c [S390] improve irq tracing code in entry[64].S 2010-05-17 10:00:15 +02:00
signal.c [S390] use set_current_state in sigsuspend 2010-01-27 10:12:49 +01:00
smp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
stacktrace.c [S390] Fix stacktrace compile bug. 2008-07-17 17:22:09 +02:00
suspend.c [S390] hibernate: make sure pfn_is_nosave handles lowcore pages 2009-09-22 22:58:45 +02:00
switch_cpu64.S [S390] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
switch_cpu.S [S390] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
swsusp_asm64.S [S390] add hook to reenable mss after hibernation 2010-04-22 17:17:19 +02:00
sys_s390.c improve sys_newuname() for compat architectures 2010-03-12 15:52:32 -08:00
syscalls.S improve sys_newuname() for compat architectures 2010-03-12 15:52:32 -08:00
sysinfo.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
time.c [S390] vdso: use ntp adjusted clock multiplier 2010-04-22 17:17:19 +02:00
topology.c [S390] arch/s390/kernel: Add missing unlock 2010-04-09 13:43:01 +02:00
traps.c [S390] ptrace: dont abuse PT_PTRACED 2009-12-18 17:43:32 +01:00
vdso.c [S390] Cleanup struct _lowcore usage and defines. 2010-02-26 22:37:31 +01:00
vmlinux.lds.S [S390] Enable kmemleak on s390. 2009-10-06 10:35:06 +02:00
vtime.c [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00