diff options
author | Ram Pai <linuxram@us.ibm.com> | 2020-07-27 11:07:17 -0700 |
---|---|---|
committer | Paul Mackerras <paulus@ozlabs.org> | 2020-07-28 12:34:52 +1000 |
commit | dfaa973ae9605e1731eaef9f30c2b056346a4efc (patch) | |
tree | de96792abf1078069813e431eeee80e26ef6fa7a /Documentation/powerpc | |
parent | 651a6310111ef8e09394e77d6d959ab3d066930d (diff) | |
download | linux-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.rst | 2 |
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 ~~~~~~~~~~~ |