mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
powerpc: Document issues with TM on POWER9
Signed-off-by: Michael Neuling <[email protected]> Acked-by: Stewart Smith <[email protected]> Signed-off-by: Michael Ellerman <[email protected]>
This commit is contained in:
parent
c6bef2e9e5
commit
aad15ccc4c
1 changed files with 44 additions and 0 deletions
|
|
@ -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 <[email protected]>
|
||||
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 a new issue