• Nicholas Piggin's avatar
    powerpc: allow soft-NMI watchdog to cover timer interrupts with large decrementers · a7cba02d
    Nicholas Piggin authored
    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: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    a7cba02d
time.c 33.4 KB