[lkml]   [2012]   [Aug]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH v7 2/2] kvm: KVM_EOIFD, an eventfd for EOIs
    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

    Why do we need to couple eoifd and irqfd?

    error compiling committee.c: too many arguments to function

     \ /
      Last update: 2012-08-06 13:02    [W:0.023 / U:12.488 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site