summaryrefslogtreecommitdiffstats
path: root/Documentation/powerpc
diff options
context:
space:
mode:
authorRam Pai <linuxram@us.ibm.com>2020-07-27 11:07:17 -0700
committerPaul Mackerras <paulus@ozlabs.org>2020-07-28 12:34:52 +1000
commitdfaa973ae9605e1731eaef9f30c2b056346a4efc (patch)
treede96792abf1078069813e431eeee80e26ef6fa7a /Documentation/powerpc
parent651a6310111ef8e09394e77d6d959ab3d066930d (diff)
downloadlinux-stable-dfaa973ae9605e1731eaef9f30c2b056346a4efc.tar.gz
linux-stable-dfaa973ae9605e1731eaef9f30c2b056346a4efc.tar.bz2
linux-stable-dfaa973ae9605e1731eaef9f30c2b056346a4efc.zip
KVM: PPC: Book3S HV: In H_SVM_INIT_DONE, migrate remaining normal-GFNs to secure-GFNs
The Ultravisor is expected to explicitly call H_SVM_PAGE_IN for all the pages of the SVM before calling H_SVM_INIT_DONE. This causes a huge delay in tranistioning the VM to SVM. The Ultravisor is only interested in the pages that contain the kernel, initrd and other important data structures. The rest contain throw-away content. However if not all pages are requested by the Ultravisor, the Hypervisor continues to consider the GFNs corresponding to the non-requested pages as normal GFNs. This can lead to data-corruption and undefined behavior. In H_SVM_INIT_DONE handler, move all the PFNs associated with the SVM's GFNs to secure-PFNs. Skip the GFNs that are already Paged-in or Shared or Paged-in followed by a Paged-out. Reviewed-by: Bharata B Rao <bharata@linux.ibm.com> Signed-off-by: Ram Pai <linuxram@us.ibm.com> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Diffstat (limited to 'Documentation/powerpc')
-rw-r--r--Documentation/powerpc/ultravisor.rst2
1 files changed, 2 insertions, 0 deletions
diff --git a/Documentation/powerpc/ultravisor.rst b/Documentation/powerpc/ultravisor.rst
index a1c8c37159a1..ba6b1bf1cc44 100644
--- a/Documentation/powerpc/ultravisor.rst
+++ b/Documentation/powerpc/ultravisor.rst
@@ -934,6 +934,8 @@ Return values
* H_UNSUPPORTED if called from the wrong context (e.g.
from an SVM or before an H_SVM_INIT_START
hypercall).
+ * H_STATE if the hypervisor could not successfully
+ transition the VM to Secure VM.
Description
~~~~~~~~~~~