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