Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1329300

Re: [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization code in vmx_cpu_reset

From Paolo Bonzini <pbonzini@redhat.com>
Newsgroups linux.kernel
Subject Re: [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization code in vmx_cpu_reset
Date 2016-02-08 17:50 +0100
Message-ID <qZXaG-7Ql-17@gated-at.bofh.it> (permalink)
References <qYeSm-jz-11@gated-at.bofh.it> <qZVBU-70K-23@gated-at.bofh.it> <qZWRk-7IX-21@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw



On 08/02/2016 17:29, Bruce Rogers wrote:
>>>> On 2/8/2016 at 08:09 AM, Paolo Bonzini <pbonzini@redhat.com> wrote: 
> 
>>
>> On 03/02/2016 23:51, Bruce Rogers wrote:
>>>
>>> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
>>> index e2951b6..21507b4 100644
>>> --- a/arch/x86/kvm/vmx.c
>>> +++ b/arch/x86/kvm/vmx.c
>>> @@ -4993,8 +4993,8 @@ static void vmx_vcpu_reset(struct kvm_vcpu *vcpu, bool 
>> init_event)
>>>  		vmcs_write16(VIRTUAL_PROCESSOR_ID, vmx->vpid);
>>>  
>>>  	cr0 = X86_CR0_NW | X86_CR0_CD | X86_CR0_ET;
>>> -	vmx_set_cr0(vcpu, cr0); /* enter rmode */
>>>  	vmx->vcpu.arch.cr0 = cr0;
>>> +	vmx_set_cr0(vcpu, cr0); /* enter rmode */
>>
>> Your comment that the assignment is redundant is correct, but I am
>> afraid that this fix is also wrong.  In particular, it would not cause
>> exit_lmode and enter_rmode to be called.
>>
>> You are not describing which call to kvm_mmu_reset_context was messed
>> up, so I'm not sure how your patch is fixing things.
> 
> This is in the context of AP sending INIT to BSP with unrestricted_guest=N.
> 
> So the call sequence where I see the issue is: kvm_apic_accept_events() ->
> kvm_vcpu_reset() -> vmx_vcpu_reset() -> vmx_set_cr0() -> enter_rmode() ->
> kvm_mmu_reset_context().
> 
> enter_rmode is called in the case I am testing.

Please describe the bug as thoroughly as possible, especially the
initial state of the BSP and AP and how the bug manifests after the INIT
IPI.  It would be great to write a kvm-unit-tests testcase for it, but I
can do it too if you provide enough information.

Paolo

Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

[PATCH 1/2] KVM: x86: fix ordering of cr0 initialization code in vmx_cpu_reset Bruce Rogers <brogers@suse.com> - 2016-02-04 00:20 +0100
  [PATCH 2/2] KVM: x86: allow BSP to handle INIT IPIs like APs do Bruce Rogers <brogers@suse.com> - 2016-02-04 00:20 +0100
    Re: [PATCH 2/2] KVM: x86: allow BSP to handle INIT IPIs like APs do Paolo Bonzini <pbonzini@redhat.com> - 2016-02-08 16:20 +0100
      Re: [PATCH 2/2] KVM: x86: allow BSP to handle INIT IPIs like APs do Jan Kiszka <jan.kiszka@web.de> - 2016-02-08 16:30 +0100
        Re: [PATCH 2/2] KVM: x86: allow BSP to handle INIT IPIs like  APs do "Bruce Rogers" <brogers@suse.com> - 2016-02-08 17:40 +0100
          Re: [PATCH 2/2] KVM: x86: allow BSP to handle INIT IPIs like APs do Paolo Bonzini <pbonzini@redhat.com> - 2016-02-08 17:50 +0100
            Re: [PATCH 2/2] KVM: x86: allow BSP to handle INIT IPIs like  APs do "Bruce Rogers" <brogers@suse.com> - 2016-02-08 18:30 +0100
              Re: [PATCH 2/2] KVM: x86: allow BSP to handle INIT IPIs like APs do Paolo Bonzini <pbonzini@redhat.com> - 2016-02-08 18:50 +0100
            Re: [PATCH 2/2] KVM: x86: allow BSP to handle INIT IPIs like  APs do "Bruce Rogers" <brogers@suse.com> - 2016-02-08 18:40 +0100
              Re: [PATCH 2/2] KVM: x86: allow BSP to handle INIT IPIs like APs do Jan Kiszka <jan.kiszka@web.de> - 2016-02-08 19:00 +0100
  Re: [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization code in vmx_cpu_reset Nadav Amit <nadav.amit@gmail.com> - 2016-02-04 00:20 +0100
    Re: [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization  code in vmx_cpu_reset "Bruce Rogers" <brogers@suse.com> - 2016-02-04 00:40 +0100
  Re: [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization code in  vmx_cpu_reset Paolo Bonzini <pbonzini@redhat.com> - 2016-02-08 16:10 +0100
    Re: [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization  code in vmx_cpu_reset "Bruce Rogers" <brogers@suse.com> - 2016-02-08 17:30 +0100
      Re: [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization code in  vmx_cpu_reset Paolo Bonzini <pbonzini@redhat.com> - 2016-02-08 17:50 +0100

csiph-web