summaryrefslogtreecommitdiff
path: root/include/linux/acct.h
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@ozlabs.org>2018-01-11 14:51:02 +1100
committerPaul Mackerras <paulus@ozlabs.org>2018-01-17 11:19:02 +1100
commit6964e6a4e4894c707e42d51d9d30683c57f43201 (patch)
treeef3bc964763578daf12287ad67f52b6a6a79e984 /include/linux/acct.h
parent43ff3f65234061e08d234bdef5a9aadc19832b74 (diff)
KVM: PPC: Book3S HV: Do SLB load/unload with guest LPCR value loaded
This moves the code that loads and unloads the guest SLB values so that it is done while the guest LPCR value is loaded in the LPCR register. The reason for doing this is that on POWER9, the behaviour of the slbmte instruction depends on the LPCR[UPRT] bit. If UPRT is 1, as it is for a radix host (or guest), the SLB index is truncated to 2 bits. This means that for a HPT guest on a radix host, the SLB was not being loaded correctly, causing the guest to crash. The SLB is now loaded much later in the guest entry path, after the LPCR is loaded, which for a secondary thread is after it sees that the primary thread has switched the MMU to the guest. The loop that waits for the primary thread has a branch out to the exit code that is taken if it sees that other threads have commenced exiting the guest. Since we have now not loaded the SLB at this point, we make this path branch to a new label 'guest_bypass' and we move the SLB unload code to before this label. Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Diffstat (limited to 'include/linux/acct.h')
0 files changed, 0 insertions, 0 deletions