Commit 837e72f7 authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman

powerpc/64: Drop reservation-clearing ldarx in context switch

There is no need to explicitly break the reservation in _switch,
because we are guaranteed that the context switch path will include a
larx/stcx.

Comment the guarantee and remove the reservation clear from _switch.

This is worth 1-2% in context switch performance.
Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent e4c0fc5f
...@@ -521,15 +521,10 @@ _GLOBAL(_switch) ...@@ -521,15 +521,10 @@ _GLOBAL(_switch)
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
/* /*
* If we optimise away the clear of the reservation in system * The kernel context switch path must contain a spin_lock,
* calls because we know the CPU tracks the address of the * which contains larx/stcx, which will clear any reservation
* reservation, then we need to clear it here to cover the * of the task being switched.
* case that the kernel context switch path has no larx
* instructions.
*/ */
BEGIN_FTR_SECTION
ldarx r6,0,r1
END_FTR_SECTION_IFSET(CPU_FTR_STCX_CHECKS_ADDRESS)
BEGIN_FTR_SECTION BEGIN_FTR_SECTION
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment