[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 00/13] IOMMU: Enable interrupt remapping for
From: |
Peter Xu |
Subject: |
Re: [Qemu-devel] [PATCH v2 00/13] IOMMU: Enable interrupt remapping for Intel IOMMU |
Date: |
Thu, 14 Apr 2016 13:25:02 +0800 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Wed, Apr 13, 2016 at 07:39:53AM -0700, Jan Kiszka wrote:
> On 2016-04-13 00:27, Peter Xu wrote:
> > On Mon, Apr 11, 2016 at 03:32:18PM +0300, Michael S. Tsirkin wrote:
> >> On Mon, Apr 11, 2016 at 05:19:10PM +0800, Peter Xu wrote:
> >>> v2 changes:
> >>> - patch 1
> >>> - rename "int_remap" to "intr" in several places [Marcel]
> >>> - remove "Intel" specific words in desc or commit message, prepare
> >>> itself with further AMD support [Marcel]
> >>> - avoid using object_property_get_bool() [Marcel]
> >>> - patch 5
> >>> - use PCI bus number 0xff rather than 0xf0 for the IOAPIC scope
> >>> definition. (please let me know if anyone knows how I can avoid
> >>> user using PCI bus number 0xff... TIA)
> >>> - patch 11
> >>> - fix comments [Marcel]
> >>> - all
> >>> - remove intr_supported variable [Marcel]
> >>>
> >>> This patchset provide very basic functionalities for interrupt
> >>> remapping (IR) support of the emulated Intel IOMMU device.
> >>>
> >>> 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 basic network (still do not support kvm-ioapic,
> >>> so we need to specify kernel-irqchip=off here):
> >>>
> >>> $ qemu-system-x86_64 -M q35,iommu=on,intr=on,kernel-irqchip=off \
> >>> -enable-kvm -m 1024 -s \
> >>> -monitor telnet::3333,server,nowait \
> >>> -netdev user,id=user.0,hostfwd=tcp::5555-:22 \
> >>> -device virtio-net-pci,netdev=user.0 \
> >>> /var/lib/libvirt/images/vm1.qcow2
> >>>
> >>> When guest boots, we can verify whether IR enabled by grepping the
> >>> dmesg like:
> >>>
> >>> address@hidden ~]# 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 only two devices are supported:
> >>>
> >>> - Emulated IOAPIC device
> >>> - PCI Devices
> >>>
> >>> TODO List:
> >>>
> >>> - kvm-ioapic support
> >>
> >> This is probably a must. I don't think we can merge this
> >> as long as it breaks kvm.
> >
> > But kvm-ioapic might require modification to KVM as well. Do you
> > think I should add kvm-ioapic into this series as well? Or can I
> > first submit this part of work without kvm-ioapic (since this work
> > is not related to KVM at all), then work on another one to support
> > kvm-ioapic?
>
> Just go for split irqchip. If we ever need support for in-kernel irqchip
> is questionable.
Okay. I can add one more patch to support split irqchip I suppose,
that should be much easier. The idea would be: to translate
interrupts before updating KVM routes in IOAPIC. Also, I may need to
take care of IR cache invalidation this time, since if I do the
above, remapping will be cached in kernel gsi routes.
I suppose irqfd will solve itself too after we support splitted
irqchip, since irqfd should be using the gsi routes. Will do more
test to confirm this.
Thanks.
-- peterx
- Re: [Qemu-devel] [PATCH v2 12/13] intel_iommu: ioapic: IR support for emulated IOAPIC, (continued)
[Qemu-devel] [PATCH v2 13/13] intel_iommu: Add support for PCI MSI remap, Peter Xu, 2016/04/11
Re: [Qemu-devel] [PATCH v2 00/13] IOMMU: Enable interrupt remapping for Intel IOMMU, Michael S. Tsirkin, 2016/04/11
Re: [Qemu-devel] [PATCH v2 00/13] IOMMU: Enable interrupt remapping for Intel IOMMU, Alex Williamson, 2016/04/11