Re: [PATCH v8 18/18] KVM: SVM: Enable SEV live migration feature implicitly on Incoming VM(s).
On 04/12/20 22:46, Ashish Kalra wrote: I would prefer that userspace does this using KVM_SET_MSR instead. Ok. But, this is for a VM which has already been migrated based on feature support on host and guest and host negotation and enablement of the live migration support, so i am assuming that a VM which has already been migrated can have this support enabled implicitly for further migration. It's just that it is a unexpected side effect of KVM_SET_PAGE_ENC_BITMAP. I prefer to have it tied to the more obvious KVM_SET_MSR ioctl. Paolo
Re: [PATCH v8 18/18] KVM: SVM: Enable SEV live migration feature implicitly on Incoming VM(s).
Hello Paolo, On Fri, Dec 04, 2020 at 12:22:48PM +0100, Paolo Bonzini wrote: > On 05/05/20 23:22, Ashish Kalra wrote: > > From: Ashish Kalra > > > > For source VM, live migration feature is enabled explicitly > > when the guest is booting, for the incoming VM(s) it is implied. > > This is required for handling A->B->C->... VM migrations case. > > > > Signed-off-by: Ashish Kalra > > --- > > arch/x86/kvm/svm/sev.c | 7 +++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c > > index 6f69c3a47583..ba7c0ebfa1f3 100644 > > --- a/arch/x86/kvm/svm/sev.c > > +++ b/arch/x86/kvm/svm/sev.c > > @@ -1592,6 +1592,13 @@ int svm_set_page_enc_bitmap(struct kvm *kvm, > > if (ret) > > goto unlock; > > + /* > > +* For source VM, live migration feature is enabled > > +* explicitly when the guest is booting, for the > > +* incoming VM(s) it is implied. > > +*/ > > + sev_update_migration_flags(kvm, KVM_SEV_LIVE_MIGRATION_ENABLED); > > + > > bitmap_copy(sev->page_enc_bmap + BIT_WORD(gfn_start), bitmap, > > (gfn_end - gfn_start)); > > > > I would prefer that userspace does this using KVM_SET_MSR instead. > > Ok. But, this is for a VM which has already been migrated based on feature support on host and guest and host negotation and enablement of the live migration support, so i am assuming that a VM which has already been migrated can have this support enabled implicitly for further migration. Thanks, Ashish
Re: [PATCH v8 18/18] KVM: SVM: Enable SEV live migration feature implicitly on Incoming VM(s).
On 05/05/20 23:22, Ashish Kalra wrote: From: Ashish Kalra For source VM, live migration feature is enabled explicitly when the guest is booting, for the incoming VM(s) it is implied. This is required for handling A->B->C->... VM migrations case. Signed-off-by: Ashish Kalra --- arch/x86/kvm/svm/sev.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 6f69c3a47583..ba7c0ebfa1f3 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -1592,6 +1592,13 @@ int svm_set_page_enc_bitmap(struct kvm *kvm, if (ret) goto unlock; + /* +* For source VM, live migration feature is enabled +* explicitly when the guest is booting, for the +* incoming VM(s) it is implied. +*/ + sev_update_migration_flags(kvm, KVM_SEV_LIVE_MIGRATION_ENABLED); + bitmap_copy(sev->page_enc_bmap + BIT_WORD(gfn_start), bitmap, (gfn_end - gfn_start)); I would prefer that userspace does this using KVM_SET_MSR instead. Paolo
Re: [PATCH v8 18/18] KVM: SVM: Enable SEV live migration feature implicitly on Incoming VM(s).
On 05/05/20 23:22, Ashish Kalra wrote: From: Ashish Kalra For source VM, live migration feature is enabled explicitly when the guest is booting, for the incoming VM(s) it is implied. This is required for handling A->B->C->... VM migrations case. Signed-off-by: Ashish Kalra --- arch/x86/kvm/svm/sev.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 6f69c3a47583..ba7c0ebfa1f3 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -1592,6 +1592,13 @@ int svm_set_page_enc_bitmap(struct kvm *kvm, if (ret) goto unlock; + /* +* For source VM, live migration feature is enabled +* explicitly when the guest is booting, for the +* incoming VM(s) it is implied. +*/ + sev_update_migration_flags(kvm, KVM_SEV_LIVE_MIGRATION_ENABLED); + bitmap_copy(sev->page_enc_bmap + BIT_WORD(gfn_start), bitmap, (gfn_end - gfn_start)); Why? I'd prefer the host to do this manually using a KVM_ENABLE_CAP. The hook in patch 12 would also be enabled/disabled using KVM_ENABLE_CAP. Paolo
Re: [PATCH v8 18/18] KVM: SVM: Enable SEV live migration feature implicitly on Incoming VM(s).
On Tue, May 5, 2020 at 2:22 PM Ashish Kalra wrote: > > From: Ashish Kalra > > For source VM, live migration feature is enabled explicitly > when the guest is booting, for the incoming VM(s) it is implied. > This is required for handling A->B->C->... VM migrations case. > > Signed-off-by: Ashish Kalra > --- > arch/x86/kvm/svm/sev.c | 7 +++ > 1 file changed, 7 insertions(+) > > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c > index 6f69c3a47583..ba7c0ebfa1f3 100644 > --- a/arch/x86/kvm/svm/sev.c > +++ b/arch/x86/kvm/svm/sev.c > @@ -1592,6 +1592,13 @@ int svm_set_page_enc_bitmap(struct kvm *kvm, > if (ret) > goto unlock; > > + /* > +* For source VM, live migration feature is enabled > +* explicitly when the guest is booting, for the > +* incoming VM(s) it is implied. > +*/ > + sev_update_migration_flags(kvm, KVM_SEV_LIVE_MIGRATION_ENABLED); > + > bitmap_copy(sev->page_enc_bmap + BIT_WORD(gfn_start), bitmap, > (gfn_end - gfn_start)); > > -- > 2.17.1 > Reviewed-by: Steve Rutherford
[PATCH v8 18/18] KVM: SVM: Enable SEV live migration feature implicitly on Incoming VM(s).
From: Ashish Kalra For source VM, live migration feature is enabled explicitly when the guest is booting, for the incoming VM(s) it is implied. This is required for handling A->B->C->... VM migrations case. Signed-off-by: Ashish Kalra --- arch/x86/kvm/svm/sev.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 6f69c3a47583..ba7c0ebfa1f3 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -1592,6 +1592,13 @@ int svm_set_page_enc_bitmap(struct kvm *kvm, if (ret) goto unlock; + /* +* For source VM, live migration feature is enabled +* explicitly when the guest is booting, for the +* incoming VM(s) it is implied. +*/ + sev_update_migration_flags(kvm, KVM_SEV_LIVE_MIGRATION_ENABLED); + bitmap_copy(sev->page_enc_bmap + BIT_WORD(gfn_start), bitmap, (gfn_end - gfn_start)); -- 2.17.1