[KVM PATCH v9 0/5] irqfd fixes and enhancements

From: Gregory Haskins
Date: Thu Jul 02 2009 - 11:38:27 EST


(Applies to kvm.git/master:1f9050fd)

The following is the latest attempt to fix the races in irqfd/eventfd, as
well as restore DEASSIGN support. For more details, please read the patch
headers.

As always, this series has been tested against the kvm-eventfd unit test
and everything appears to be functioning properly. You can download this
test here:

ftp://ftp.novell.com/dev/ghaskins/kvm-eventfd.tar.bz2

Kind Regards,
-Greg

[Changelog:

v9:
*) Re-split v8:1/3 into v9[1/5, 2/5, 3/5]
*) Fixed bad error handing in 3/5
*) Changed "init" bitfield in 5/5 to a bool
*) Rebased to kvm.git/master:1f9050fd)

v8:
*) Rebased to kvm.git/master:beeaacd1)
*) Dropped Davide's patch (2/5 in v7) since it's now upstream
*) Folded v7's 1/5 and 3/5 together, and added a single
eventfd hunk to convert wake_up_locked_polled to wake_up_polled
*) Dropped irqfd->active bit in favor of irqfd_is_active() function
*) Cleaned up comments in 1/3
*) Dropped v7's 5/5 (slow-work)
*) Added new patch (3/3) which makes the cleanup-wq's creation
dynamic so to avoid the resource penalty for guests that do
not use irqfd.

v7:
*) Addressed minor-nit feedback from Michael
*) Cleaned up patch headers
*) Re-added separate slow-work feature patch to end for comparison

v6:
*) Removed slow-work in favor of using a dedicated single-thread
workqueue.
*) Condensed cleanup path to always use deferred shutdown
*) Saved about 56 lines over v5, with the following diffstat:

include/linux/kvm_host.h | 2
virt/kvm/eventfd.c | 248 ++++++++++++++++++-----------------------------
2 files changed, 97 insertions(+), 153 deletions(-)
v5:
Untracked..
]


---

Gregory Haskins (5):
KVM: create irqfd-cleanup-wq on demand
KVM: add irqfd DEASSIGN feature
KVM: Fix races in irqfd using new eventfd_kref_get interface
eventfd: use locked POLLHUP
kvm: prepare irqfd for having interrupts disabled during eventfd->release


fs/eventfd.c | 7 -
include/linux/kvm.h | 2
include/linux/kvm_host.h | 6 +
virt/kvm/eventfd.c | 281 ++++++++++++++++++++++++++++++++++++----------
4 files changed, 229 insertions(+), 67 deletions(-)

--
Signature
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/