From: Alex Williamson <alex.williamson@redhat.com>
To: Peter Xu <peterx@redhat.com>
Cc: qemu-devel@nongnu.org, Igor Mammedov <imammedo@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Eduardo Habkost <ehabkost@redhat.com>,
"Michael S . Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 1/3] q35: set split kernel irqchip as default
Date: Fri, 26 Apr 2019 15:02:36 -0600 [thread overview]
Message-ID: <20190426150236.1af2ff08@x1.home> (raw)
In-Reply-To: <20190426132744.2b594bf5@x1.home>
On Fri, 26 Apr 2019 13:27:44 -0600
Alex Williamson <alex.williamson@redhat.com> wrote:
> On Thu, 20 Dec 2018 13:40:35 +0800
> Peter Xu <peterx@redhat.com> wrote:
>
> > Starting from QEMU 4.0, let's specify "split" as the default value for
> > kernel-irqchip.
> >
> > So for QEMU>=4.0 we'll have: allowed=Y,required=N,split=Y
> > for QEMU<=3.1 we'll have: allowed=Y,required=N,split=N
> > (omitting all the "kernel_irqchip_" prefix)
> >
> > Note that this will let the default q35 machine type to depend on
> > Linux version 4.4 or newer because that's where split irqchip is
> > introduced in kernel. But it's fine since we're boosting supported
> > Linux version for QEMU 4.0 to around Linux 4.5. For more information
> > please refer to the discussion on AMD's RDTSCP:
> >
> > https://lore.kernel.org/lkml/20181210181328.GA762@zn.tnic/
>
> It looks like this broke INTx for vfio-pci, see:
>
> https://bugs.launchpad.net/qemu/+bug/1826422
>
> In my testing it looks like KVM advertises supporting the KVM_IRQFD
> resample feature, but vfio never gets the unmask notification, so the
> device remains with DisINTx set and no further interrupts are
> generated. Do we expect KVM's IRQFD with resampler to work in the
> split IRQ mode? We can certainly hope that "high performance" devices
> use MSI or MSI/X, but this would be quite a performance regression with
> split mode if our userspace bypass for INTx goes away. Thanks,
arch/x86/kvm/lapic.c:kvm_ioapic_send_eoi() dumps to userspace before
kvm_ioapic_update_eoi() can handle the irq_ack_notifier_list via
kvm_notify_acked_gsi(), so it looks like KVM really ought to return an
error when trying to register a resample IRQFD when irqchip_split(),
but do we have better options? EOI handling in QEMU is pretty much
non-existent and even if it was in place, it's a big performance
regression for vfio INTx handling. Is a split irqchip that retains
performant resampling (EOI) support possible? Thanks,
Alex
WARNING: multiple messages have this Message-ID (diff)
From: Alex Williamson <alex.williamson@redhat.com>
To: Peter Xu <peterx@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>,
"Michael S . Tsirkin" <mst@redhat.com>,
qemu-devel@nongnu.org, Eduardo Habkost <ehabkost@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 1/3] q35: set split kernel irqchip as default
Date: Fri, 26 Apr 2019 15:02:36 -0600 [thread overview]
Message-ID: <20190426150236.1af2ff08@x1.home> (raw)
Message-ID: <20190426210236.oSKZdyuWcxplIwavFTg2-Zq_TEbeFtxbBjYoKQkTo-8@z> (raw)
In-Reply-To: <20190426132744.2b594bf5@x1.home>
On Fri, 26 Apr 2019 13:27:44 -0600
Alex Williamson <alex.williamson@redhat.com> wrote:
> On Thu, 20 Dec 2018 13:40:35 +0800
> Peter Xu <peterx@redhat.com> wrote:
>
> > Starting from QEMU 4.0, let's specify "split" as the default value for
> > kernel-irqchip.
> >
> > So for QEMU>=4.0 we'll have: allowed=Y,required=N,split=Y
> > for QEMU<=3.1 we'll have: allowed=Y,required=N,split=N
> > (omitting all the "kernel_irqchip_" prefix)
> >
> > Note that this will let the default q35 machine type to depend on
> > Linux version 4.4 or newer because that's where split irqchip is
> > introduced in kernel. But it's fine since we're boosting supported
> > Linux version for QEMU 4.0 to around Linux 4.5. For more information
> > please refer to the discussion on AMD's RDTSCP:
> >
> > https://lore.kernel.org/lkml/20181210181328.GA762@zn.tnic/
>
> It looks like this broke INTx for vfio-pci, see:
>
> https://bugs.launchpad.net/qemu/+bug/1826422
>
> In my testing it looks like KVM advertises supporting the KVM_IRQFD
> resample feature, but vfio never gets the unmask notification, so the
> device remains with DisINTx set and no further interrupts are
> generated. Do we expect KVM's IRQFD with resampler to work in the
> split IRQ mode? We can certainly hope that "high performance" devices
> use MSI or MSI/X, but this would be quite a performance regression with
> split mode if our userspace bypass for INTx goes away. Thanks,
arch/x86/kvm/lapic.c:kvm_ioapic_send_eoi() dumps to userspace before
kvm_ioapic_update_eoi() can handle the irq_ack_notifier_list via
kvm_notify_acked_gsi(), so it looks like KVM really ought to return an
error when trying to register a resample IRQFD when irqchip_split(),
but do we have better options? EOI handling in QEMU is pretty much
non-existent and even if it was in place, it's a big performance
regression for vfio INTx handling. Is a split irqchip that retains
performant resampling (EOI) support possible? Thanks,
Alex
next prev parent reply other threads:[~2019-04-26 21:02 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-20 5:40 [Qemu-devel] [PATCH v2 0/3] q35: change defaults for kernel irqchip and IR Peter Xu
2018-12-20 5:40 ` [Qemu-devel] [PATCH v2 1/3] q35: set split kernel irqchip as default Peter Xu
2018-12-20 12:13 ` Eduardo Habkost
2019-04-26 19:27 ` Alex Williamson
2019-04-26 19:27 ` Alex Williamson
2019-04-26 21:02 ` Alex Williamson [this message]
2019-04-26 21:02 ` Alex Williamson
2019-04-27 5:29 ` Paolo Bonzini
2019-04-27 5:29 ` Paolo Bonzini
2019-04-27 8:09 ` Paolo Bonzini
2019-04-27 8:09 ` Paolo Bonzini
2019-04-29 14:21 ` Alex Williamson
2019-04-29 14:21 ` Alex Williamson
2019-04-29 14:55 ` Eduardo Habkost
2019-04-29 14:55 ` Eduardo Habkost
2019-04-29 15:22 ` Alex Williamson
2019-04-29 15:22 ` Alex Williamson
2019-05-03 18:42 ` Eduardo Habkost
2019-05-03 18:42 ` Eduardo Habkost
2019-05-05 9:06 ` Peter Xu
2019-05-05 9:06 ` Peter Xu
2019-05-06 16:13 ` Paolo Bonzini
2019-05-06 21:16 ` Eduardo Habkost
2019-05-03 20:00 ` Michael S. Tsirkin
2019-05-03 20:00 ` Michael S. Tsirkin
2019-05-03 20:23 ` Eduardo Habkost
2019-05-03 20:23 ` Eduardo Habkost
2019-05-06 16:17 ` Paolo Bonzini
2019-04-30 23:01 ` Alex Williamson
2019-04-30 23:01 ` Alex Williamson
2019-04-30 23:09 ` Paolo Bonzini
2019-04-30 23:09 ` Paolo Bonzini
2019-05-01 0:28 ` Alex Williamson
2019-05-01 0:28 ` Alex Williamson
2018-12-20 5:40 ` [Qemu-devel] [PATCH v2 2/3] x86-iommu: switch intr_supported to OnOffAuto type Peter Xu
2018-12-20 5:40 ` [Qemu-devel] [PATCH v2 3/3] x86-iommu: turn on IR by default if proper Peter Xu
2018-12-20 10:00 ` [Qemu-devel] [PATCH v2 0/3] q35: change defaults for kernel irqchip and IR Paolo Bonzini
2018-12-20 10:16 ` Peter Xu
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=20190426150236.1af2ff08@x1.home \
--to=alex.williamson@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).