Skip to content

Commit a050d20

Browse files
npigginmpe
authored andcommitted
powerpc/64s: Use relon prolog for EXC_VIRT_OOL_MASKABLE_HV handlers
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: 1707dd1 ("powerpc: Save CFAR before branching in interrupt entry paths") Signed-off-by: Nicholas Piggin <[email protected]> [mpe: Fold some more detail into the change log] Signed-off-by: Michael Ellerman <[email protected]>
1 parent 686978b commit a050d20

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

arch/powerpc/include/asm/exception-64s.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,7 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
522522

523523
#define MASKABLE_RELON_EXCEPTION_HV_OOL(vec, label) \
524524
EXCEPTION_PROLOG_1(PACA_EXGEN, SOFTEN_TEST_HV, vec); \
525-
EXCEPTION_PROLOG_PSERIES_1(label, EXC_HV)
525+
EXCEPTION_RELON_PROLOG_PSERIES_1(label, EXC_HV)
526526

527527
/*
528528
* Our exception common code can be passed various "additions"

0 commit comments

Comments
 (0)