• Martin Schwidefsky's avatar
    [S390] virtual cpu accounting vs. machine checks. · 63b12246
    Martin Schwidefsky authored
    If a machine checks interrupts the external or the i/o interrupt
    handler before they have completed the cpu time calculations, the
    accounting goes wrong. After the cpu returned from the machine check
    handler to the interrupted interrupt handler, a negative cpu time delta
    can occur.  If the accumulated cpu time in lowcore is small enough
    this value can get negative as well. The next jiffy interrupt will pick
    up that negative value, shift it by 12 and add the now huge positive
    value to the cpu time of the process.
    To solve this the machine check handler is modified not to change any
    of the timestamps in the lowcore if the machine check interrupted kernel
    context.
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    63b12246
entry.S 32.5 KB