Gregory Haskins wrote: > (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. > > You can also find this applied as a git tree: > > git pull git://git.kernel.org/pub/scm/linux/kernel/git/ghaskins/linux-2.6-hacks.git kvm/irqfd > > For reviewing convenience, here is a link to the entire virt/kvm/eventfd.c > file after the patches are applied: > > http://git.kernel.org/?p=linux/kernel/git/ghaskins/linux-2.6-hacks.git;a=blob;f=virt/kvm/eventfd.c;h=409d9e160f1f85618a5e3772937b2721a249399a;hb=85cfd57e33dcaea29971513334ca003764653b21 > > As always, this series has been tested against the kvm-eventfd unit test, and > 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: > > 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(-) > Forgot another change: *) Fixed race in ASSIGN for the proper acquisition order of the irqfd->eventfd > v5: > Untracked.. > ] > > --- > > Davide Libenzi (1): > eventfd - revised interface and cleanups (4th rev) > > Gregory Haskins (3): > 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 | 5 + > virt/kvm/Kconfig | 1 > virt/kvm/eventfd.c | 229 +++++++++++++++++++++++++++++++----------- > 10 files changed, 321 insertions(+), 111 deletions(-) > >
Attachment:
signature.asc
Description: OpenPGP digital signature