• Nicholas Piggin's avatar
    powerpc/64s: Use relon prolog for EXC_VIRT_OOL_MASKABLE_HV handlers · a050d20d
    Nicholas Piggin authored
    Hypervisor Virtualization and Directed Hypervisor Doorbell interrupt handlers
    use the macro EXC_VIRT_OOL_MASKABLE_HV for their relocation-on handlers, which
    calls MASKABLE_RELON_EXCEPTION_HV_OOL, which uses the *real mode* interrupt
    prolog. This means we needlessly rfid from virtual mode to virtual mode.
    
    For POWER8 it only affects doorbell IPIs. Context switch microbenchmark between
    threads with snooze disabled (which causes IPI) gets about 3% faster, about 370
    cycles. Should be more important on POWER9 with global doorbells and HVI for
    host interrupts.
    
    Use the RELON variant instead to reduce overhead.
    
    Fixes: 1707dd16 ("powerpc: Save CFAR before branching in interrupt entry paths")
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    [mpe: Fold some more detail into the change log]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    a050d20d
exception-64s.h 18.9 KB