Prev: regulator: Fix display of null constraints for regulators
Next: [PATCH 0/12] Memory Compaction v2r12
From: Stefano Stabellini on 12 Feb 2010 07:00 On Thu, 11 Feb 2010, Sheng Yang wrote: > > The MSI/MSI-X is the target, but if we add more code then we want benefit from > them. Stick with LAPIC is no benefit I think. > We wouldn't stick with LAPIC: the guest could still decide to use event channels for all the vectors and LAPIC usage would be avoided, and it is probably what is going to happen. > > You said that you are working on patches to make MSI devices work: maybe > > seeing a working implementation of that would convince us about which one > > is the correct approach. > > Um, we don't want to show code to the community before it's mature. I can > describe one implementation: it add a hook in arch_setup_msi_irqs(), and write > the self-defined MSI data/addr(contained event channel information) to the PCI > configuration/MMIO; then hypervisor/qemu can intercept and parse it, then we > can get the event when real device's interrupt injected. > your approach needs: - global enable of evtchns in place of legacy irqs on the linux side - special translation irq -> evtchn in irq.c on the xen side - special requests of evtchns in place of MSIs on the linux side (touching generic kernel code) - special handling of evtchns in place of MSIs on the qemu/xen side the last two points are particularly worrying. My approach needs: - per vector enable of evtchns on the linux side - special delivery of evtchns for guest's vectors in vlapic.c on the xen side I think it is worth giving it a try, given that it is simpler and it doesn't need any change in the generic kernel code. In any case it seems to me that the MSI\evtchn work should be part of this patch series, because it is difficult to understand if your approach makes sense or not without it. We should probably just wait for it to be complete before proceeding further. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |