Message ID | 20210106105001.449974-5-mlevitsk@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: nSVM: few random fixes | expand |
On Wed, Jan 06, 2021, Maxim Levitsky wrote: > The code to store it on the migration exists, but no code was restoring it. > > Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com> > --- > arch/x86/kvm/svm/nested.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c > index 6208d3a5a3fdb..c1a3d0e996add 100644 > --- a/arch/x86/kvm/svm/nested.c > +++ b/arch/x86/kvm/svm/nested.c > @@ -1203,6 +1203,10 @@ static int svm_set_nested_state(struct kvm_vcpu *vcpu, > * in the registers, the save area of the nested state instead > * contains saved L1 state. > */ > + > + if (kvm_state->flags & KVM_STATE_NESTED_RUN_PENDING) > + svm->nested.nested_run_pending = true; This should be: svm->nested.nested_run_pending = !!(kvm_state->flags & KVM_STATE_NESTED_RUN_PENDING); > + > copy_vmcb_control_area(&hsave->control, &svm->vmcb->control); > hsave->save = *save; > > -- > 2.26.2 >
On Wed, 2021-01-06 at 09:27 -0800, Sean Christopherson wrote: > On Wed, Jan 06, 2021, Maxim Levitsky wrote: > > The code to store it on the migration exists, but no code was restoring it. > > > > Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com> > > --- > > arch/x86/kvm/svm/nested.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c > > index 6208d3a5a3fdb..c1a3d0e996add 100644 > > --- a/arch/x86/kvm/svm/nested.c > > +++ b/arch/x86/kvm/svm/nested.c > > @@ -1203,6 +1203,10 @@ static int svm_set_nested_state(struct kvm_vcpu *vcpu, > > * in the registers, the save area of the nested state instead > > * contains saved L1 state. > > */ > > + > > + if (kvm_state->flags & KVM_STATE_NESTED_RUN_PENDING) > > + svm->nested.nested_run_pending = true; > > This should be: Yes, if someone already set the nested state before, but I also sent a patch that forces nesteded mode exit in this case. Still 100% agree, that this would be better. Thanks for the review, Best regards, Maxim Levitsky > > svm->nested.nested_run_pending = > !!(kvm_state->flags & KVM_STATE_NESTED_RUN_PENDING); > > > + > > copy_vmcb_control_area(&hsave->control, &svm->vmcb->control); > > hsave->save = *save; > > > > -- > > 2.26.2 > >
diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c index 6208d3a5a3fdb..c1a3d0e996add 100644 --- a/arch/x86/kvm/svm/nested.c +++ b/arch/x86/kvm/svm/nested.c @@ -1203,6 +1203,10 @@ static int svm_set_nested_state(struct kvm_vcpu *vcpu, * in the registers, the save area of the nested state instead * contains saved L1 state. */ + + if (kvm_state->flags & KVM_STATE_NESTED_RUN_PENDING) + svm->nested.nested_run_pending = true; + copy_vmcb_control_area(&hsave->control, &svm->vmcb->control); hsave->save = *save;
The code to store it on the migration exists, but no code was restoring it. Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com> --- arch/x86/kvm/svm/nested.c | 4 ++++ 1 file changed, 4 insertions(+)