Messages in this thread |  | | Date | Tue, 14 Jun 2022 16:23:14 +0200 | Subject | Re: [PATCH v11 13/19] KVM: s390: pv: destroy the configuration before its memory | From | Janosch Frank <> |
| |
On 6/3/22 08:56, Claudio Imbrenda wrote: > Move the Destroy Secure Configuration UVC before the loop to destroy > the memory. If the protected VM has memory, it will be cleaned up and > made accessible by the Destroy Secure Configuraion UVC. The struct
s/Configuraion/Configuration/
> page for the relevant pages will still have the protected bit set, so > the loop is still needed to clean that up. > > Switching the order of those two operations does not change the > outcome, but it is significantly faster. > > Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
> --- > arch/s390/kvm/pv.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/s390/kvm/pv.c b/arch/s390/kvm/pv.c > index a389555d62e7..6cffea26c47f 100644 > --- a/arch/s390/kvm/pv.c > +++ b/arch/s390/kvm/pv.c > @@ -163,6 +163,9 @@ int kvm_s390_pv_deinit_vm(struct kvm *kvm, u16 *rc, u16 *rrc) > { > int cc; > > + cc = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm), > + UVC_CMD_DESTROY_SEC_CONF, rc, rrc); > + WRITE_ONCE(kvm->arch.gmap->guest_handle, 0); > /* > * if the mm still has a mapping, make all its pages accessible > * before destroying the guest > @@ -172,9 +175,6 @@ int kvm_s390_pv_deinit_vm(struct kvm *kvm, u16 *rc, u16 *rrc) > mmput(kvm->mm); > } > > - cc = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm), > - UVC_CMD_DESTROY_SEC_CONF, rc, rrc); > - WRITE_ONCE(kvm->arch.gmap->guest_handle, 0); > if (!cc) { > atomic_dec(&kvm->mm->context.protected_count); > kvm_s390_pv_dealloc_vm(kvm);
|  |