From: Paolo Bonzini <pbonzini@redhat.com>
To: Bruce Rogers <brogers@suse.com>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: namit@cs.technion.ac.il, jan.kiszka@siemens.com
Subject: Re: [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization code in vmx_cpu_reset
Date: Mon, 8 Feb 2016 17:43:18 +0100 [thread overview]
Message-ID: <56B8C5A6.3070407@redhat.com> (raw)
In-Reply-To: <56B85FFA02000048001251CE@prv-mh.provo.novell.com>
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
next prev parent reply other threads:[~2016-02-08 16:43 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-03 22:51 [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization code in vmx_cpu_reset Bruce Rogers
2016-02-03 22:51 ` [PATCH 2/2] KVM: x86: allow BSP to handle INIT IPIs like APs do Bruce Rogers
2016-02-08 15:12 ` Paolo Bonzini
2016-02-08 15:22 ` Jan Kiszka
2016-02-08 16:33 ` Bruce Rogers
2016-02-08 16:40 ` Paolo Bonzini
2016-02-08 17:27 ` Bruce Rogers
2016-02-08 17:44 ` Paolo Bonzini
2016-02-08 17:38 ` Bruce Rogers
2016-02-08 17:53 ` Jan Kiszka
2016-02-10 17:24 ` Bruce Rogers
2016-02-03 23:18 ` [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization code in vmx_cpu_reset Nadav Amit
2016-02-03 23:38 ` Bruce Rogers
2016-04-22 18:55 ` Bruce Rogers
2016-02-08 15:09 ` Paolo Bonzini
2016-02-08 16:29 ` Bruce Rogers
2016-02-08 16:43 ` Paolo Bonzini [this message]
2016-04-27 2:54 ` Wanpeng Li
2016-04-28 22:18 ` Bruce Rogers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56B8C5A6.3070407@redhat.com \
--to=pbonzini@redhat.com \
--cc=brogers@suse.com \
--cc=jan.kiszka@siemens.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=namit@cs.technion.ac.il \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).