On 2016-04-28 11:18, Peter Xu wrote: > On Thu, Apr 28, 2016 at 09:19:28AM +0200, Jan Kiszka wrote: >> On 2016-04-28 09:05, Peter Xu wrote: >>> v5 changes: >>> - patch 10: add vector checking for IOAPIC interrupts (this may help >>> debug in the future, will only generate warning if specify >>> IOMMU_DEBUG) >>> - patch 13: replace error_report() with a trace. [Jan] >>> - patch 14: rename parameter "intr" to "intremap", to be aligned >>> with kernel parameter [Jan] >>> - patch 15: fix comments for vtd_iec_notify_fn >>> - patch 17 & 18 (added): fix issue when IR enabled with devices >>> using level-triggered interrupts, like e1000. Adding it to the end >>> of series, since this issue never happen without IR. >>> >>> Patch 17 adds read-only check for IOAPIC entries. >>> Patch 18 clears remote IRR bit when entry configured as >>> edge-triggered. >> >> IIUC, your series does not address irqfd yet, only by chance if the >> target is an IOAPIC pin for which you set up routes now. Correct? > > Ah, yes, vhost and vfio should be in the notifier list as well. I > just missed that. :( > > If not consider the IEC invalidation, the series should work for > irqfd, right?
Hmm, yeah - you are hooking to the route update path and translate what the kernel will get. > >> >> Instead of fiddling with irq routes for the IOAPIC - where we don't need >> it -, I would suggest to do the following: Send IOAPIC events via >> kvm_irqchip_send_msi to the kernel. Only irqfd users (vhost, vfio) >> should use the pattern you are now applying to the IOAPIC: establish >> static routes as an irqfd is set up, and that route should be translated >> by the iommu first, register an IEC notifier to update any affected >> route when the iommu translation changes. > > Yes, maybe that's the right thing to do. Or say, when split irqchip, > IOAPIC can avoid using GSI routes any more. If with that, I should > also remove lots of things, like: IEC notifiers for IOAPIC, and all > things related to msi route sync-up in IOAPIC codes with KVM (so I > suppose we will save 24 gsi route entries for KVM, which sounds > good). Right. > > (Ah... I think the series is keep growing...) (Looks like I'm contributing to it, sorry ;) ) Jan