Messages in this thread | | | Date | Wed, 20 Apr 2022 17:05:41 +0200 | Subject | Re: [PATCH 1/8] KVM: nSVM: Sync next_rip field from vmcb12 to vmcb02 | From | "Maciej S. Szmigiero" <> |
| |
On 20.04.2022 17:00, Paolo Bonzini wrote: > On 4/4/22 19:21, Sean Christopherson wrote: >> On Mon, Apr 04, 2022, Maciej S. Szmigiero wrote: >>>> @@ -1606,7 +1622,7 @@ static int svm_set_nested_state(struct kvm_vcpu *vcpu, >>>> nested_copy_vmcb_control_to_cache(svm, ctl); >>>> svm_switch_vmcb(svm, &svm->nested.vmcb02); >>>> - nested_vmcb02_prepare_control(svm); >>>> + nested_vmcb02_prepare_control(svm, save->rip); >>> >>> ^ >>> I guess this should be "svm->vmcb->save.rip", since >>> KVM_{GET,SET}_NESTED_STATE "save" field contains vmcb01 data, >>> not vmcb{0,1}2 (in contrast to the "control" field). >> >> Argh, yes. Is userspace required to set L2 guest state prior to KVM_SET_NESTED_STATE? >> If not, this will result in garbage being loaded into vmcb02. >> > > Let's just require X86_FEATURE_NRIPS, either in general or just to > enable nested virtualiazation
👍
> > If I looked it up correctly it was introduced around 2010-2011.
A quick Internet search showed that the first CPUs with NextRIP were the second-generation Family 10h CPUs (Phenom II, Athlon II, etc.). They started being released in early 2009.
> Paolo
Thanks, Maciej
| |