On Thu, 14 May 2009, Gregory Haskins wrote: > Avi Kivity wrote: > > Gregory Haskins wrote: > >> KVM provides a complete virtual system environment for guests, including > >> support for injecting interrupts modeled after the real > >> exception/interrupt > >> facilities present on the native platform (such as the IDT on x86). > >> Virtual interrupts can come from a variety of sources (emulated devices, > >> pass-through devices, etc) but all must be injected to the guest via > >> the KVM infrastructure. This patch adds a new mechanism to inject a > >> specific > >> interrupt to a guest using a decoupled eventfd mechnanism: Any legal > >> signal > >> on the irqfd (using eventfd semantics from either userspace or > >> kernel) will > >> translate into an injected interrupt in the guest at the next available > >> interrupt window. > >> > >> + > >> +static void > >> +irqfd_inject(struct work_struct *work) > >> +{ > >> + struct _irqfd *irqfd = container_of(work, struct _irqfd, work); > >> + struct kvm *kvm = irqfd->kvm; > >> + > >> > > > > > > I think you need to ->read() from the irqfd, otherwise the count will > > never clear. > > Yeah, and this is a disavantage to using eventfd vs a custom anon-fd > implementation. > > However, the count is really only there for deciding whether to sleep a > traditional eventfd recipient which doesn't really apply in this > application. I suppose we could try to invoke the read method (or add a > new method to eventfd to allow it to be cleared independent of the > f_ops->read() (ala eventfd_signal() vs f_ops->write()). I'm not > convinced we really need to worry about it, though. IMO we can just let > the count accumulate. > > But if you insist this loose end should be addressed, perhaps Davide has > some thoughts on how to best do this? The counter is 64bit, so at 1M IRQ/s will take about 585K years to saturate. But from a symmetry POV, it may be better to clear it. Maybe with a kernel-side eventfd_read()? - Davide -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html