Skip to content

irqfd fixes and enhancements

Gregory Haskins kvm lkml 7 versions – Applied

Status from this message: Applied, thanks.

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v9 Latest5 patches 21 repliesApplied
  2. v83 patches 5 repliesSuperseded
  3. v75 patches 2 repliesSuperseded
Earlier versions · 4
VersionPostedPatchesRepliesStatus
v64 patches6 repliesSuperseded
v54 patches23 repliesSuperseded
v44 patches0 repliesSuperseded
v33 patches10 repliesSuperseded

Changes in v9 from the cover letter

*) 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)

Patches in v9 Applied

#Subject and filesSizeRepliesApplied
1/5kvm: prepare irqfd for having interrupts disabled during eventfd->releasevirt/kvm/eventfd.c+27 -620 replies
2/5eventfd: use locked POLLHUPfs/eventfd.c+1 -61 reply
3/5KVM: Fix races in irqfd using new eventfd_kref_get interfaceinclude/linux/kvm_host.h virt/kvm/eventfd.c+136 -270 replies
4/5KVM: add irqfd DEASSIGN featureinclude/linux/kvm.h virt/kvm/eventfd.c+46 -20 replies
5/5KVM: create irqfd-cleanup-wq on demandinclude/linux/kvm_host.h virt/kvm/eventfd.c+75 -268 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v9 yet.

Read the v9 thread

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

(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 · 1 line
Signature