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 */
|
||||
|
||||
/*
|
||||
* If we optimise away the clear of the reservation in system
|
||||
* calls because we know the CPU tracks the address of the
|
||||
* reservation, then we need to clear it here to cover the
|
||||
* case that the kernel context switch path has no larx
|
||||
* instructions.
|
||||
* The kernel context switch path must contain a spin_lock,
|
||||
* which contains larx/stcx, which will clear any reservation
|
||||
* of the task being switched.
|
||||
*/
|
||||
BEGIN_FTR_SECTION
|
||||
ldarx r6,0,r1
|
||||
END_FTR_SECTION_IFSET(CPU_FTR_STCX_CHECKS_ADDRESS)
|
||||
|
||||
BEGIN_FTR_SECTION
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user