From: Peter Xu <peterx@redhat.com>
To: Jan Kiszka <jan.kiszka@web.de>
Cc: qemu-devel@nongnu.org, imammedo@redhat.com, rth@twiddle.net,
ehabkost@redhat.com, jasowang@redhat.com, marcel@redhat.com,
mst@redhat.com, pbonzini@redhat.com, rkrcmar@redhat.com,
alex.williamson@redhat.com, wexu@redhat.com
Subject: Re: [Qemu-devel] [PATCH v4 00/16] IOMMU: Enable interrupt remapping for Intel IOMMU
Date: Mon, 25 Apr 2016 15:18:07 +0800 [thread overview]
Message-ID: <20160425071806.GF3261@pxdev.xzpeter.org> (raw)
In-Reply-To: <571DA823.1030003@web.de>
On Mon, Apr 25, 2016 at 07:16:19AM +0200, Jan Kiszka wrote:
> On 2016-04-19 10:38, Peter Xu wrote:
[...]
> > By default, IR is disabled to be better compatible with current
> > QEMU. To enable IR, we can using the following command to boot a
> > IR-supported VM with virtio-net device with vhost (still do not
> > support kvm-ioapic, so we need to specify kernel-irqchip={split|off}
> > here):
> >
> > $ qemu-system-x86_64 -M q35,iommu=on,intr=on,kernel-irqchip=split \
>
> "intr" sounds a bit too much like "interrupt", not "interrupt
> remapping". Why not use the kernel's form, "intremap"?
Sure. It sounds nice to be aligned with the kernel one. Let me take
it in v5.
>
> > -enable-kvm -m 1024 \
> > -netdev tap,id=net0,vhost=on \
> > -device virtio-net-pci,netdev=user.0 \
> > -monitor telnet::3333,server,nowait \
> > /var/lib/libvirt/images/vm1.qcow2
> >
> > When guest boots, we can verify whether IR enabled by grepping the
> > dmesg like:
> >
> > [root@localhost ~]# journalctl -k | grep "DMAR-IR"
> > Feb 19 11:21:23 localhost.localdomain kernel: DMAR-IR: IOAPIC id 0 under DRHD base 0xfed90000 IOMMU 0
> > Feb 19 11:21:23 localhost.localdomain kernel: DMAR-IR: Enabled IRQ remapping in xapic mode
> >
> > Currently supported devices:
> >
> > - Emulated/Splitted irqchip
> > - Generic PCI Devices
> > - vhost devices
> > - pass through device support? Not tested, but suppose it should work.
>
> I've tested this series against my Jailhouse setup, and it works pretty
> well! Actually considering to move my test setup over this branch.
This is really encouraging feedback! Btw, thanks for all kinds of
help on this patchset. :-)
>
> However, split irqchip still has some issues: When I boot a q35 machine
> with Linux, the e1000 network adapter only gets a single IRQ delivered.
> Interestingly, other IOAPIC IRQs like the keyboard work all the time. I
> didn't debug this in details yet.
I reproduced this problem. It seems that it fails even with
kernel-irqchip=off. Will try to dig it out.
>
> >
> > TODO List:
> >
> > - kvm-ioapic support (?)
> > - EIM support
>
> That should be fairly easy, I already played with it (hack in EIM cap,
> change vtd_remap_irq_get, assuming EIME would be set). However, it
> depends on split irqchip to work properly (there is no x2apic in
> userspace APIC), and that is not yet the case.
That's cool. Never tried it though. Anyway, will leave x2apic
related work for Radim. :)
>
> > - IR fault reporting
>
> Would be welcome! I found a "test case" yesterday: misconfigured IOAPIC
> ID blocked its IRQs under Jailhouse, and I first had to enable tracing
> to realize it ;).
Yes, it sounds nice to have guest side feedback on IR faults. Will
do more reading, and see whether I can add one more patch in v5 to
do this.
Thanks!
-- peterx
next prev parent reply other threads:[~2016-04-25 7:18 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-19 8:38 [Qemu-devel] [PATCH v4 00/16] IOMMU: Enable interrupt remapping for Intel IOMMU Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 01/16] acpi: enable INTR for DMAR report structure Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 02/16] intel_iommu: allow queued invalidation for IR Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 03/16] intel_iommu: set IR bit for ECAP register Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 04/16] acpi: add DMAR scope definition for root IOAPIC Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 05/16] intel_iommu: define interrupt remap table addr register Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 06/16] intel_iommu: handle interrupt remap enable Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 07/16] intel_iommu: define several structs for IOMMU IR Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 08/16] intel_iommu: provide helper function vtd_get_iommu Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 09/16] intel_iommu: add IR translation faults defines Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 10/16] intel_iommu: Add support for PCI MSI remap Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 11/16] q35: ioapic: add support for emulated IOAPIC IR Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 12/16] ioapic: introduce ioapic_entry_parse() helper Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 13/16] intel_iommu: add support for split irqchip Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 14/16] q35: add "int-remap" flag to enable intr Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 15/16] intel_iommu: introduce IEC notifiers Peter Xu
2016-04-19 8:38 ` [Qemu-devel] [PATCH v4 16/16] ioapic: register VT-d IEC invalidate notifier Peter Xu
2016-04-25 5:16 ` [Qemu-devel] [PATCH v4 00/16] IOMMU: Enable interrupt remapping for Intel IOMMU Jan Kiszka
2016-04-25 7:18 ` Peter Xu [this message]
2016-04-25 7:24 ` Jan Kiszka
2016-04-25 16:38 ` Radim Krčmář
2016-04-26 7:34 ` Peter Xu
2016-04-26 7:57 ` Jan Kiszka
2016-04-26 8:15 ` Jan Kiszka
2016-04-26 10:38 ` Peter Xu
2016-04-26 10:51 ` Jan Kiszka
2016-04-26 11:40 ` Peter Xu
2016-04-26 14:24 ` Jan Kiszka
2016-04-26 14:59 ` Radim Krčmář
2016-04-26 15:28 ` Jan Kiszka
2016-04-26 16:07 ` Radim Krčmář
2016-04-26 17:47 ` Jan Kiszka
2016-04-26 14:19 ` Radim Krčmář
2016-04-27 7:29 ` Peter Xu
2016-04-27 14:31 ` Radim Krčmář
2016-04-28 5:27 ` Peter Xu
2016-04-28 16:24 ` Radim Krčmář
2016-04-28 6:06 ` Peter Xu
2016-04-28 6:44 ` Peter Xu
2016-05-09 11:58 ` Paolo Bonzini
2016-05-10 6:09 ` Peter Xu
2016-05-10 8:58 ` Paolo Bonzini
2016-05-10 10:10 ` 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=20160425071806.GF3261@pxdev.xzpeter.org \
--to=peterx@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=jan.kiszka@web.de \
--cc=jasowang@redhat.com \
--cc=marcel@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rkrcmar@redhat.com \
--cc=rth@twiddle.net \
--cc=wexu@redhat.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 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).