path: root/Documentation
diff options
authorRam Pai <>2020-07-27 11:07:17 -0700
committerPaul Mackerras <>2020-07-28 12:34:52 +1000
commitdfaa973ae9605e1731eaef9f30c2b056346a4efc (patch)
treede96792abf1078069813e431eeee80e26ef6fa7a /Documentation
parent651a6310111ef8e09394e77d6d959ab3d066930d (diff)
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 <> Signed-off-by: Ram Pai <> Signed-off-by: Paul Mackerras <>
Diffstat (limited to 'Documentation')
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
+ * H_STATE if the hypervisor could not successfully
+ transition the VM to Secure VM.