On 07/24/2012 11:43 PM, Alex Williamson wrote: > This new ioctl enables an eventfd to be triggered when an EOI is > written for a specified irqchip pin. The first user of this will > be external device assignment through VFIO, using a level irqfd > for asserting a PCI INTx interrupt and this interface for de-assert > and notification once the interrupt is serviced. > > Here we make use of the reference counting of the _irq_source > object allowing us to share it with an irqfd and cleanup regardless > of the release order. The name is slightly misleading. eoifd doesn't trigger on EOI (which is an APIC->IOAPIC interface) but rather when an interrupt controller resamples an input line. This happens for the IOAPIC when an EOI is received for a vector that is configured for level interrupts and not masked, or similarly for a PIC (but this is not triggered by an APIC EOI). It's not a huge difference, but let's document it. > > +4.77 KVM_EOIFD > + > +Capability: KVM_CAP_EOIFD > +Architectures: x86 > +Type: vm ioctl > +Parameters: struct kvm_eoifd (in) > +Returns: 0 on success, < 0 on error > + > +KVM_EOIFD allows userspace to receive interrupt EOI notification > +through an eventfd. kvm_eoifd.fd specifies the eventfd used for > +notification. KVM_EOIFD_FLAG_DEASSIGN is used to de-assign an eoifd > +once assigned. KVM_EOIFD also requires additional bits set in > +kvm_eoifd.flags to bind to the proper interrupt line. The > +KVM_EOIFD_FLAG_LEVEL_IRQFD indicates that kvm_eoifd.key is provided > +and is a key from a level triggered interrupt (configured from > +KVM_IRQFD using KVM_IRQFD_FLAG_LEVEL). The EOI notification is bound > +to the same GSI and irqchip input as the irqfd. Both kvm_eoifd.key > +and KVM_EOIFD_FLAG_LEVEL_IRQFD must be specified on assignment and > +de-assignment of KVM_EOIFD. A level irqfd may only be bound to a > +single eoifd. KVM_CAP_EOIFD_LEVEL_IRQFD indicates support of > +KVM_EOIFD_FLAG_LEVEL_IRQFD. Why do we need to couple eoifd and irqfd? -- error compiling committee.c: too many arguments to function -- 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