From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58771) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1auamg-0008DQ-Fn for qemu-devel@nongnu.org; Mon, 25 Apr 2016 03:18:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1auamb-0001HB-ON for qemu-devel@nongnu.org; Mon, 25 Apr 2016 03:18:18 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56602) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1auamb-0001H1-H0 for qemu-devel@nongnu.org; Mon, 25 Apr 2016 03:18:13 -0400 Date: Mon, 25 Apr 2016 15:18:07 +0800 From: Peter Xu Message-ID: <20160425071806.GF3261@pxdev.xzpeter.org> References: <1461055122-32378-1-git-send-email-peterx@redhat.com> <571DA823.1030003@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <571DA823.1030003@web.de> Subject: Re: [Qemu-devel] [PATCH v4 00/16] IOMMU: Enable interrupt remapping for Intel IOMMU List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka 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 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