• Martin Schwidefsky's avatar
    [S390] idle time accounting vs. machine checks · 6377981f
    Martin Schwidefsky authored
    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: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    6377981f
vtime.c 14.6 KB