OSDN Git Service

powerpc: allow soft-NMI watchdog to cover timer interrupts with large decrementers
authorNicholas Piggin <npiggin@gmail.com>
Fri, 4 May 2018 17:19:32 +0000 (03:19 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 3 Jun 2018 10:40:28 +0000 (20:40 +1000)
commita7cba02deceda96df8018a827e6715d6f37be7b5
treec5477bfbf053fa2e521592d8418151e799b96df1
parent3f984620f9a4fe089c0a3c951b75a460211394bb
powerpc: allow soft-NMI watchdog to cover timer interrupts with large decrementers

Large decrementers (e.g., POWER9) can take a very long time to wrap,
so when the timer iterrupt handler sets the decrementer to max so as
to avoid taking another decrementer interrupt when hard enabling
interrupts before running timers, it effectively disables the soft
NMI coverage for timer interrupts.

Fix this by using the traditional 31-bit value instead, which wraps
after a few seconds. masked interrupt code does the same thing, and
in normal operation neither of these paths would ever wrap even the
31 bit value.

Note: the SMP watchdog should catch timer interrupt lockups, but it
is preferable for the local soft-NMI to catch them, mainly to avoid
the IPI.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/time.c