qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 00/16] IOMMU: Enable interrupt remapping for


From: Peter Xu
Subject: Re: [Qemu-devel] [PATCH v4 00/16] IOMMU: Enable interrupt remapping for Intel IOMMU
Date: Mon, 25 Apr 2016 15:18:07 +0800
User-agent: Mutt/1.5.24 (2015-08-30)

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:
> > 
> > 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 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]