[PATCH v2 03/12] powerpc/dexcr: Add initial Dynamic Execution Control Register (DEXCR) support
Russell Currey
ruscur at russell.cc
Mon May 8 13:44:11 AEST 2023
On Thu, 2023-03-30 at 16:50 +1100, Benjamin Gray wrote:
> ISA 3.1B introduces the Dynamic Execution Control Register (DEXCR).
> It
> is a per-cpu register that allows control over various CPU behaviours
> including branch hint usage, indirect branch speculation, and
> hashst/hashchk support.
>
> Add some definitions and basic support for the DEXCR in the kernel.
> Right now it just
>
> * Zero initialises the DEXCR and HASHKEYR when a CPU onlines.
> * Clears them in reset_sprs().
> * Detects when the NPHIE aspect is supported (the others don't get
> looked at in this series, so there's no need to waste a CPU_FTR
> on them).
>
> We initialise the HASHKEYR to ensure that all cores have the same
> key,
> so an HV enforced NPHIE + swapping cores doesn't randomly crash a
> process using hash instructions. The stores to HASHKEYR are
> unconditional because the ISA makes no mention of the SPR being
> missing
> if support for doing the hashes isn't present. So all that would
> happen
> is the HASHKEYR value gets ignored. This helps slightly if NPHIE
> detection fails; e.g., we currently only detect it on pseries.
>
> Signed-off-by: Benjamin Gray <bgray at linux.ibm.com>
>
LGTM.
Reviewed-by: Russell Currey <ruscur at russell.cc>
More information about the Linuxppc-dev
mailing list