All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wanpeng Li <wanpeng.li@linux.intel.com>
To: Wincy Van <fanwenyi0529@gmail.com>
Cc: Yong Wang <yong.y.wang@linux.intel.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"gleb@kernel.org" <gleb@kernel.org>,
	"Zhang, Yang Z" <yang.z.zhang@intel.com>,
	Wanpeng Li <wanpeng.li@linux.intel.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Jan Kiszka <jan.kiszka@web.de>,
	mtosatti@redhat.com, rongrongx.liu@intel.com
Subject: Re: [PATCH resend v5 6/6] KVM: nVMX: Enable nested posted interrupt processing
Date: Fri, 27 Feb 2015 17:04:20 +0800	[thread overview]
Message-ID: <20150227090420.GA22474@kernel> (raw)
In-Reply-To: <CACzj_yUmzshtU7--gqn9XTLMae8cKfjgVPRa9bEEEv04A8DBBA@mail.gmail.com>

Cc Rongrong,
On Fri, Feb 27, 2015 at 04:56:06PM +0800, Wincy Van wrote:
>On Sun, Feb 15, 2015 at 2:27 PM, Yong Wang <yong.y.wang@linux.intel.com> wrote:
>>
>> Wincy, our QA found regressions with this patch that 64bit L2 linux guest
>> fails to boot up when running nested kvm on kvm.
>>
>> Environment:
>> ------------
>> Host OS (ia32/ia32e/IA64):ia32e
>> Guest OS (ia32/ia32e/IA64):ia32e
>> Guest OS Type (Linux/Windows):Linux
>> kvm.git Commit:6557bada461afeaa920a189fae2cff7c8fdce39f
>> qemu.kvm Commit:5c697ae74170d43928cb185f5ac1a9058adcae0b
>> Host Kernel Version:3.19.0-rc3
>> Hardware:Ivytown_EP, Haswell_EP
>>
>>
>> Bug detailed description:
>> --------------------------
>> create 64bit linux guest as L2 guest, the guest boot up fail
>>
>> note:
>> 1. create a 32bit linux guest as L2 guest, the guest boots up fine.
>> 2. create a 64bit windows guest as L2 guest, the guest boots up fine.
>> 3. this should be a kernel bug:
>> kvm       + qemu     = result
>> 6557bada  + 5c697ae7 = bad
>> 8fff5e37  + 5c697ae7 = good
>>
>> Reproduce steps:
>> ----------------
>> 1 create L1 guest:
>> qemu-system-x86_64 -enable-kvm -m 8G -smp 4 -net nic,macaddr=00:12:31:34:51:31 -net tap,script=/etc/kvm/qemu-ifup nested-kvm.qcow -cpu host
>>
>> 2. create L2 guest
>> qemu-system-x86_64 -enable-kvm -m 2G -smp 2 -net none rhel6u5.qcow
>>
>> Current result:
>> ----------------
>> create 64bit linux guest as L2 guest, the guest boots up fail
>>
>> Expected result:
>> ----------------
>> create 64bit linux guest as L2 guest, the guest boots up fine
>>
>> Please take a look.
>>
>
>Yong, according to the logs, I found that L1 may have disabled x2apic,
>and the MSR_BITMAP field will be modified by following vmx_set_efer in
>prepare_vmcs02.
>So I think we can fix this issue by:
>
>diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
>index f7b20b4..f6e3457 100644
>--- a/arch/x86/kvm/vmx.c
>+++ b/arch/x86/kvm/vmx.c
>@@ -2168,7 +2168,10 @@ static void vmx_set_msr_bitmap(struct kvm_vcpu *vcpu)
> {
>        unsigned long *msr_bitmap;
>
>-       if (irqchip_in_kernel(vcpu->kvm) && apic_x2apic_mode(vcpu->arch.apic)) {
>+       if (is_guest_mode(vcpu))
>+               msr_bitmap = vmx_msr_bitmap_nested;
>+       else if (irqchip_in_kernel(vcpu->kvm) &&
>+               apic_x2apic_mode(vcpu->arch.apic)) {
>                if (is_long_mode(vcpu))
>                        msr_bitmap = vmx_msr_bitmap_longmode_x2apic;
>                else
>
>
>Thanks,
>Wincy

  reply	other threads:[~2015-02-27  9:04 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-03 15:58 [PATCH resend v5 6/6] KVM: nVMX: Enable nested posted interrupt processing Wincy Van
2015-02-15  6:27 ` Yong Wang
2015-02-15 13:01   ` Wincy Van
2015-02-27  8:56   ` Wincy Van
2015-02-27  9:04     ` Wanpeng Li [this message]
2015-03-02 10:18     ` Yong Wang

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=20150227090420.GA22474@kernel \
    --to=wanpeng.li@linux.intel.com \
    --cc=fanwenyi0529@gmail.com \
    --cc=gleb@kernel.org \
    --cc=jan.kiszka@web.de \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=rongrongx.liu@intel.com \
    --cc=yang.z.zhang@intel.com \
    --cc=yong.y.wang@linux.intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.