All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Peter Xu <peterx@redhat.com>
Cc: Jan Kiszka <jan.kiszka@web.de>,
	Igor Mammedov <imammedo@redhat.com>,
	qemu-devel@nongnu.org, ehabkost@redhat.com, mst@redhat.com,
	mtosatti@redhat.com, kevin@koconnor.net, pbonzini@redhat.com,
	lersek@redhat.com, tianyu.lan@intel.com, yong.y.wang@intel.com
Subject: Re: [Qemu-devel] [PATCH for-2.8 00/18] pc: q35: x2APIC support in kvm_apic mode
Date: Tue, 9 Aug 2016 14:41:21 +0200	[thread overview]
Message-ID: <20160809124121.GC2263@potion> (raw)
In-Reply-To: <20160809070946.GD3979@pxdev.xzpeter.org>

2016-08-09 15:09+0800, Peter Xu:
> On Tue, Aug 09, 2016 at 08:33:13AM +0200, Jan Kiszka wrote:
>> On 2016-08-09 08:24, Peter Xu wrote:
>> > On Tue, Aug 09, 2016 at 02:18:15PM +0800, Peter Xu wrote:
>> >> On Tue, Aug 09, 2016 at 12:33:17PM +0800, Chao Gao wrote:
>> >>> On Mon, Aug 08, 2016 at 04:57:14PM +0800, Peter Xu wrote:
>> >>>> On Mon, Aug 08, 2016 at 03:41:23PM +0800, Chao Gao wrote:
>> >>>>> HI, everyone.
>> >>>>>
>> >>>>> We have done some tests after merging this patch set into the lastest qemu
>> >>>>> master. In kvm aspect, we use the lastest kvm linux-next branch. Here are
>> >>>>> some problems we have met.
>> >>>>>
>> >>>>> 1. We can't boot up a 288 vcpus linux guest with CLI:
>> >>>>> qemu-system-x86_64 -boot c -m 4096 -sdl -monitor pty --enable-kvm \
>> >>>>> -M kernel-irqchip=split -serial stdio -bios bios.bin -smp cpus=288 \
>> >>>>> -hda vdisk.img -device intel-iommu,intremap=on -machine q35.
>> >>>>> The problem exists, even after we only assign 32 vcpus to the linux guest.
>> >>>>> Maybe the output "do_IRQ: 146.113 No irq handler for vector (irq -1)" is a clue.
>> >>>>> The output of qemu and kernel is in attachments. Do you have any idea
>> >>>>> about the problem and how to solve it?
>> >>>>
>> >>>> IIUC, we need to wait for Radim's QEMU patches to finally enable 288
>> >>>> vcpus?
>> >>>>
>> >>>> Btw, could you please try adding this to the QEMU cmdline when testing
>> >>>> with 32 vcpus:
>> >>>>
>> >>>>  -global ioapic.version=0x20
>> >>>>
>> >>>> I see that you were running RHEL 7.2 guest with a default e1000. In
>> >>>> that case, we may need to boost ioapic version to 0x20.
>> >>>
>> >>> It doesn't work. My host machine has 16 cpus. When I assign 4 or 8 vcpus to the guest
>> >>> or 255 vcpus but set "kernel-irqchip=off", the guest work well. Maybe when irqchip
>> >>> is in kernel, intremap can only handle situations that vcpus number is less than 
>> >>> physical cpus'. Do you think it's right? 
>> >>
>> >> I don't think so. Vcpu number should not be related to host cpu
>> >> numbers.
>> >>
>> >> I think the problem is with x2apic. Currently, x2apic is enabled in
>> >> vIOMMU when kernel irqchip is used. This is problematic, since
>> >> actually we are throughing away dest_id[31:8] without Radim's patches,
>> >> meanwhile I see that by default x2apic is using cluster mode.
>> >>
>> >> In cluster mode, 8 bits will possibly not suffice (I think the reason
>> >> why >17 vcpus will bring trouble is that each cluster has 16 vcpus,
>> >> we'll have trouble if we have more than one cluster).
>> >>
>> >> To temporarily solve your issue, you should not only need "-global
>> >> ioapic.version=0x20" in QEMU command line, but also add "x2apic_phys"
>> >> to you guest kernel boot parameter, to force guest boot with x2apic
>> >> physical mode (not cluster mode). Though this can only work for <255
>> >> vcpus. IMHO we may still need to wait for Radim's patches to test >255
>> >> case.
>> > 
>> > Not sure whether we should temporarily disable EIM by default for now
>> > (provide an extra flag to optionally enable it)? Since it might break
>> > guests with >17 vcpus.
>> > 
>> > CC Jan as well.
>> 
>> A switch for EIM would be fine for me if it helps.
>> 
>> To my understanding, the issue will be gone with an enhance KVM
>> interface that we can then also detect via some cap (to flip the default
>> again)?
> 
> Would you help explain how to do it?
> 
> Btw, if we have that switch, the default can go back to EIM mode along
> with Radim's future patches.

I will post patches today as the feature made it upstream.

  reply	other threads:[~2016-08-09 12:41 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-05  9:45 [Qemu-devel] [PATCH for-2.8 00/18] pc: q35: x2APIC support in kvm_apic mode Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 01/18] numa: reduce code duplication by adding helper numa_get_node_for_cpu() Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 02/18] acpi: provide _PXM method for CPU devices if QEMU is started numa enabled Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 03/18] tests: acpi: extend cphp testcase with numa check Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 04/18] linux-headers: update to v4.8-rc1 Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 05/18] pc: acpi: x2APIC support for MADT table Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 06/18] pc: acpi: x2APIC support for SRAT table Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 07/18] acpi: cphp: support x2APIC entry in cpu._MAT Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 08/18] acpi: cphp: force switch to modern cpu hotplug if APIC ID > 254 Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 09/18] pc: leave max apic_id_limit only in legacy cpu hotplug code Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 10/18] pc: apic_common: extend APIC ID property to 32bit Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 11/18] pc: apic_common: restore APIC ID to initial ID on reset Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 12/18] pc: apic_common: reset APIC ID to initial ID when switching into x2APIC mode Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 13/18] pc: kvm_apic: pass APIC ID depending on xAPIC/x2APIC mode Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 14/18] pc: clarify FW_CFG_MAX_CPUS usage comment Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 15/18] increase MAX_CPUMASK_BITS from 255 to 288 Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 16/18] pc: add 'etc/boot-cpus' fw_cfg file for machine with more than 255 CPUs Igor Mammedov
2016-08-07  6:02   ` Michael S. Tsirkin
2016-08-08 11:40     ` Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 17/18] pc: add 2.8 machine Igor Mammedov
2016-08-05  9:46 ` [Qemu-devel] [PATCH for-2.8 18/18] pc: q35: bump max_cpus to 288 Igor Mammedov
2016-08-08  7:41 ` [Qemu-devel] [PATCH for-2.8 00/18] pc: q35: x2APIC support in kvm_apic mode Chao Gao
2016-08-08  8:57   ` Peter Xu
2016-08-09  4:33     ` Chao Gao
2016-08-09  6:18       ` Peter Xu
2016-08-09  6:24         ` Peter Xu
2016-08-09  6:33           ` Jan Kiszka
2016-08-09  7:09             ` Peter Xu
2016-08-09 12:41               ` Radim Krčmář [this message]
2016-08-09  8:19         ` Chao Gao
2016-08-09 12:51           ` Radim Krčmář
2016-09-22  4:34             ` Chao Gao
2016-09-23  5:26               ` Peter Xu
2016-09-23  5:58                 ` Lan Tianyu
2016-08-09  8:28     ` Igor Mammedov
2016-08-09 13:35       ` Peter Xu
2016-08-09 13:39         ` Luiz Capitulino
2016-08-10  8:51         ` Igor Mammedov
2016-08-10  8:51           ` [Qemu-devel] " Igor Mammedov
2016-08-11  5:10           ` Peter Xu
2016-08-11  8:56             ` Igor Mammedov
2016-08-11  8:56               ` [Qemu-devel] " Igor Mammedov
2016-08-08  9:18   ` Igor Mammedov
2016-08-09  3:23     ` Chao Gao
2016-08-09  8:18       ` Igor Mammedov

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=20160809124121.GC2263@potion \
    --to=rkrcmar@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=jan.kiszka@web.de \
    --cc=kevin@koconnor.net \
    --cc=lersek@redhat.com \
    --cc=mst@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=tianyu.lan@intel.com \
    --cc=yong.y.wang@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.