[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <492109ae-8cae-a8bf-c896-e6adfd6daa44@linux.ibm.com>
Date: Tue, 14 Jun 2022 16:23:14 +0200
From: Janosch Frank <frankja@...ux.ibm.com>
To: Claudio Imbrenda <imbrenda@...ux.ibm.com>, kvm@...r.kernel.org
Cc: borntraeger@...ibm.com, thuth@...hat.com, pasic@...ux.ibm.com,
david@...hat.com, linux-s390@...r.kernel.org,
linux-kernel@...r.kernel.org, scgl@...ux.ibm.com,
mimu@...ux.ibm.com, nrb@...ux.ibm.com
Subject: Re: [PATCH v11 13/19] KVM: s390: pv: destroy the configuration before
its memory
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@...ux.ibm.com>
Reviewed-by: Janosch Frank <frankja@...ux.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);
Powered by blists - more mailing lists