KVM: Switch assigned device IRQ forwarding to threaded handler
authorJan Kiszka <jan.kiszka@siemens.com>
Tue, 16 Nov 2010 21:30:03 +0000 (22:30 +0100)
committerAvi Kivity <avi@redhat.com>
Wed, 12 Jan 2011 09:29:20 +0000 (11:29 +0200)
commit0645211c43df0b96c51e12980066b3227e10b164
tree2c23ea65e07b9481681eb6bb7cc5d7d2fa109917
parent0c106b5aaa727c7f508828e94cff4a98874f930c
KVM: Switch assigned device IRQ forwarding to threaded handler

This improves the IRQ forwarding for assigned devices: By using the
kernel's threaded IRQ scheme, we can get rid of the latency-prone work
queue and simplify the code in the same run.

Moreover, we no longer have to hold assigned_dev_lock while raising the
guest IRQ, which can be a lenghty operation as we may have to iterate
over all VCPUs. The lock is now only used for synchronizing masking vs.
unmasking of INTx-type IRQs, thus is renames to intx_lock.

Acked-by: Alex Williamson <alex.williamson@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
include/linux/kvm_host.h
virt/kvm/assigned-dev.c