public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [KVM PATCH v7 0/5] irqfd fixes and enhancements
@ 2009-06-29 18:28 Gregory Haskins
  2009-06-29 18:29 ` [KVM PATCH v7 1/5] kvm: prepare irqfd for having interrupts disabled during eventfd->release Gregory Haskins
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Gregory Haskins @ 2009-06-29 18:28 UTC (permalink / raw)
  To: kvm; +Cc: linux-kernel, mst, avi, davidel

(Applies to kvm.git/master:4631e094)

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.  I've restored the slow-work variant of the logic as a separate
patch (5/5) so we can get a better idea of the true difference between
the workqueue approach and the slow-work style.  I am personally in favor
of the slow-work approach since it doesnt require a mostly-idle+dedicated
thread to hang around.  But that is just me.  5/5 can be ignored, folded
in to 3/5+4/5 as appropriate, or merged as is per the whim of Avi et. al.

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

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

I've included version 4 of Davide's eventfd patch (ported to kvm.git) so
that its a complete reviewable series.  Note, however, that there may be
later versions of his patch to consider for merging, so we should
coordinate with him.

-Greg


[Changelog:

	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..
]

---

Davide Libenzi (1):
      eventfd - revised interface and cleanups (4th rev)

Gregory Haskins (4):
      KVM: Make irqfd use slow-work for shutdown
      KVM: add irqfd DEASSIGN feature
      KVM: Fix races in irqfd using new eventfd_kref_get interface
      kvm: prepare irqfd for having interrupts disabled during eventfd->release


 drivers/lguest/lg.h          |    2 
 drivers/lguest/lguest_user.c |    4 -
 fs/aio.c                     |   24 +---
 fs/eventfd.c                 |  126 ++++++++++++++++++----
 include/linux/aio.h          |    4 -
 include/linux/eventfd.h      |   35 +++++-
 include/linux/kvm.h          |    2 
 include/linux/kvm_host.h     |    7 +
 virt/kvm/Kconfig             |    1 
 virt/kvm/eventfd.c           |  246 ++++++++++++++++++++++++++++++++----------
 10 files changed, 343 insertions(+), 108 deletions(-)

-- 
Signature

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-07-01  9:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-29 18:28 [KVM PATCH v7 0/5] irqfd fixes and enhancements Gregory Haskins
2009-06-29 18:29 ` [KVM PATCH v7 1/5] kvm: prepare irqfd for having interrupts disabled during eventfd->release Gregory Haskins
2009-06-29 18:29 ` [KVM PATCH v7 2/5] eventfd - revised interface and cleanups (4th rev) Gregory Haskins
2009-06-29 18:29 ` [KVM PATCH v7 3/5] KVM: Fix races in irqfd using new eventfd_kref_get interface Gregory Haskins
2009-06-29 18:29 ` [KVM PATCH v7 4/5] KVM: add irqfd DEASSIGN feature Gregory Haskins
2009-06-29 18:29 ` [KVM PATCH v7 5/5] KVM: Make irqfd use slow-work for shutdown Gregory Haskins
2009-07-01  8:53 ` [KVM PATCH v7 0/5] irqfd fixes and enhancements Avi Kivity
2009-07-01  9:03   ` Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox