[PATCH 1/6] powerpc/64s: Add barrier_nospec

Nicholas Piggin npiggin at gmail.com
Tue Apr 24 15:44:57 AEST 2018


On Tue, 24 Apr 2018 14:15:54 +1000
Michael Ellerman <mpe at ellerman.id.au> wrote:

> From: Michal Suchanek <msuchanek at suse.de>
> 
> A no-op form of ori (or immediate of 0 into r31 and the result stored
> in r31) has been re-tasked as a speculation barrier. The instruction
> only acts as a barrier on newer machines with appropriate firmware
> support. On older CPUs it remains a harmless no-op.
> 
> Implement barrier_nospec using this instruction.
> 
> mpe: The semantics of the instruction are believed to be that it
> prevents execution of subsequent instructions until preceding branches
> have been fully resolved and are no longer executing speculatively.
> There is no further documentation available at this time.
> 
> Signed-off-by: Michal Suchanek <msuchanek at suse.de>
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
> ---
> mpe: Make it Book3S64 only, update comment & change log, add a
>      memory clobber to the asm.

These all seem good to me. Thanks Michal.

We should (eventually) work on the module patching problem too.

Thanks,
Nick



More information about the Linuxppc-dev mailing list