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: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
e4c0fc5f72
commit
837e72f78a
|
@ -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
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue