[S390] virtual cpu accounting vs. machine checks.
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 29 Jun 2006 12:58:05 +0000 (14:58 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 29 Jun 2006 12:58:05 +0000 (14:58 +0200)
commit63b122466484e44d09af12bba33b34019757a3c2
treed35ecad386c69ddb930adcce352d0d0a8d5d95da
parent9faf06547efe11ccb51678c6805037c7377b85ee
[S390] virtual cpu accounting vs. machine checks.

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: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/entry.S
arch/s390/kernel/entry64.S