forked from luck/tmp_suning_uos_patched
powerpc: Document issues with TM on POWER9
Signed-off-by: Michael Neuling <mikey@neuling.org> Acked-by: Stewart Smith <stewart@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
c6bef2e9e5
commit
aad15ccc4c
|
@ -198,3 +198,47 @@ presented). The transaction cannot then be continued and will take the failure
|
|||
handler route. Furthermore, the transactional 2nd register state will be
|
||||
inaccessible. GDB can currently be used on programs using TM, but not sensibly
|
||||
in parts within transactions.
|
||||
|
||||
POWER9
|
||||
======
|
||||
|
||||
TM on POWER9 has issues with storing the complete register state. This
|
||||
is described in this commit:
|
||||
|
||||
commit 4bb3c7a0208fc13ca70598efd109901a7cd45ae7
|
||||
Author: Paul Mackerras <paulus@ozlabs.org>
|
||||
Date: Wed Mar 21 21:32:01 2018 +1100
|
||||
KVM: PPC: Book3S HV: Work around transactional memory bugs in POWER9
|
||||
|
||||
To account for this different POWER9 chips have TM enabled in
|
||||
different ways.
|
||||
|
||||
On POWER9N DD2.01 and below, TM is disabled. ie
|
||||
HWCAP2[PPC_FEATURE2_HTM] is not set.
|
||||
|
||||
On POWER9N DD2.1 TM is configured by firmware to always abort a
|
||||
transaction when tm suspend occurs. So tsuspend will cause a
|
||||
transaction to be aborted and rolled back. Kernel exceptions will also
|
||||
cause the transaction to be aborted and rolled back and the exception
|
||||
will not occur. If userspace constructs a sigcontext that enables TM
|
||||
suspend, the sigcontext will be rejected by the kernel. This mode is
|
||||
advertised to users with HWCAP2[PPC_FEATURE2_HTM_NO_SUSPEND] set.
|
||||
HWCAP2[PPC_FEATURE2_HTM] is not set in this mode.
|
||||
|
||||
On POWER9N DD2.2 and above, KVM and POWERVM emulate TM for guests (as
|
||||
described in commit 4bb3c7a0208f), hence TM is enabled for guests
|
||||
ie. HWCAP2[PPC_FEATURE2_HTM] is set for guest userspace. Guests that
|
||||
makes heavy use of TM suspend (tsuspend or kernel suspend) will result
|
||||
in traps into the hypervisor and hence will suffer a performance
|
||||
degradation. Host userspace has TM disabled
|
||||
ie. HWCAP2[PPC_FEATURE2_HTM] is not set. (although we make enable it
|
||||
at some point in the future if we bring the emulation into host
|
||||
userspace context switching).
|
||||
|
||||
POWER9C DD1.2 and above are only available with POWERVM and hence
|
||||
Linux only runs as a guest. On these systems TM is emulated like on
|
||||
POWER9N DD2.2.
|
||||
|
||||
Guest migration from POWER8 to POWER9 will work with POWER9N DD2.2 and
|
||||
POWER9C DD1.2. Since earlier POWER9 processors don't support TM
|
||||
emulation, migration from POWER8 to POWER9 is not supported there.
|
||||
|
|
Loading…
Reference in New Issue
Block a user