Re: [PATCH v8 18/18] KVM: SVM: Enable SEV live migration feature implicitly on Incoming VM(s).

2020-12-06 Thread Paolo Bonzini

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).

2020-12-04 Thread Ashish Kalra
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).

2020-12-04 Thread Paolo Bonzini

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).

2020-12-04 Thread Paolo Bonzini

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).

2020-05-29 Thread Steve Rutherford
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).

2020-05-05 Thread Ashish Kalra
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