KVM: Add resampling irqfds for level triggered interrupts
authorAlex Williamson <alex.williamson@redhat.com>
Fri, 21 Sep 2012 17:58:03 +0000 (11:58 -0600)
committerAvi Kivity <avi@redhat.com>
Sun, 23 Sep 2012 11:50:15 +0000 (13:50 +0200)
commit7a84428af7ca6a847f058c9ff244a18a2664fd1b
treee6c573c701736a75d618b670d66e98398b62769f
parent1e08ec4a130e2745d96df169e67c58df98a07311
KVM: Add resampling irqfds for level triggered interrupts

To emulate level triggered interrupts, add a resample option to
KVM_IRQFD.  When specified, a new resamplefd is provided that notifies
the user when the irqchip has been resampled by the VM.  This may, for
instance, indicate an EOI.  Also in this mode, posting of an interrupt
through an irqfd only asserts the interrupt.  On resampling, the
interrupt is automatically de-asserted prior to user notification.
This enables level triggered interrupts to be posted and re-enabled
from vfio with no userspace intervention.

All resampling irqfds can make use of a single irq source ID, so we
reserve a new one for this interface.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Documentation/virtual/kvm/api.txt
arch/x86/kvm/x86.c
include/linux/kvm.h
include/linux/kvm_host.h
virt/kvm/eventfd.c
virt/kvm/irq_comm.c