On Thu, 2022-04-14 at 10:03 +0200, 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 > 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@xxxxxxxxxxxxx> Reviewed-by: Nico Boehr <nrb@xxxxxxxxxxxxx> See one tiny thing below. > diff --git a/arch/s390/kvm/pv.c b/arch/s390/kvm/pv.c > index be3b467f8feb..bd850be08c86 100644 > --- a/arch/s390/kvm/pv.c > +++ b/arch/s390/kvm/pv.c [...] > - 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); Maybe it makes sense to also move the WRITE_ONCE up.