On 2016-02-25 09:33, Lan Tianyu wrote:
> 2016-02-20 17:00 GMT+08:00 Paolo Bonzini <pbonz...@redhat.com>:
>>
>>
>> ----- Original Message -----
>>> From: "Jan Kiszka" <jan.kis...@web.de>
>>> To: "Eduardo Habkost" <ehabk...@redhat.com>, "Paolo Bonzini" 
>>> <pbonz...@redhat.com>
>>> Cc: "qemu-devel" <qemu-devel@nongnu.org>, "kvm" <k...@vger.kernel.org>
>>> Sent: Saturday, February 20, 2016 9:09:32 AM
>>> Subject: kvm: "warning: host doesn't support requested feature: 
>>> CPUID.01H:ECX.x2apic [bit 21]"
>>>
>>> Hi all,
>>>
>>> I suppose 5120901a37 introduced this: qemu with kernel_irqchip=off now
>>> generates these warnings, one per VCPU, during QEMU startup. Is the plan
>>> to live with them until we finally have x2APIC emulation in userspace
>>> (ie. also MSR vmexiting to there), or should we otherwise avoid it?
>>
>> I think it's a bug, x2apic should be auto-suppressed with kernel_irqchip=off.
>>
> 
> The patch is to fix the issue.
> ------------------------------------->8----------------------------
> From 58f2a3a94c8e7bf9f3474bcafb6c59cc4f8bcbd9 Mon Sep 17 00:00:00 2001
> From: Lan Tianyu <tianyu....@intel.com>
> Date: Sun, 15 Jul 2001 01:40:17 -0400
> Subject: [PATCH] Qemu/KVM: Remove x2apic feature from CPU model when
>  kernel_irqchip=off
> 
> x2apic feature is in the kvm_default_props and automatically added to all
> CPU models when KVM is enabled regardless of kernel_irqchip=off. This will
> trigger "warning: host doesn't support requested feature: CPUID.01H:
> ECX.x2apic [bit 21]" when kernel_irqchip=off. This patch is to remove x2apic
> feature when kernel_irqchip=off.

We know this, but it's probably worth to mention the underlying reason
here: userspace devices don't support x2APIC.

> 
> Signed-off-by: Lan Tianyu <tianyu....@intel.com>
> ---
>  target-i386/cpu.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 0d447b5..2ec7eb7 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -2105,6 +2105,9 @@ static void x86_cpu_load_def(X86CPU *cpu,
> X86CPUDefinition *def, Error **errp)
> 
>      /* Special cases not set in the X86CPUDefinition structs: */
>      if (kvm_enabled()) {
> +           if (!kvm_irqchip_in_kernel())
> +               x86_cpu_change_kvm_default("x2apic", "off");
> +
>          x86_cpu_apply_props(cpu, kvm_default_props);
>      }
> 
> --
> 1.9.3
> 

Make sure to comply with the coding style (there is a checkpatch.pl also
in QEMU). And please post as a new thread with proper subject, otherwise
people (and tools) will not find your patch as such.

Jan

Reply via email to