From: Ashish Kalra Pages are converted from shared to private as SNP guests are launched. This destroys exisiting RMPOPT optimizations in the regions where pages are converted. Conversely, guest pages are converted back to shared during SNP guest termination and their region may become eligible for RMPOPT optimization. To take advantage of this, perform RMPOPT after guest termination. Do it after a delay so that a single RMPOPT pass can be done if multiple guests terminate in a short period of time. Acked-by: Dave Hansen Signed-off-by: Ashish Kalra --- arch/x86/kvm/svm/sev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 3f9c1aa39a0a..e0f4f8ebef68 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -2942,6 +2942,8 @@ void sev_vm_destroy(struct kvm *kvm) if (sev_snp_guest(kvm)) { snp_guest_req_cleanup(kvm); + snp_rmpopt_all_physmem(); + /* * Decomission handles unbinding of the ASID. If it fails for * some unexpected reason, just leak the ASID. -- 2.43.0