Re: [PATCHv2 1/3] eventfd: allow atomic read and waitqueue remove

Avi Kivity
2010-01-21T17:13:17Z

On 01/21/2010 06:58 PM, Davide Libenzi wrote:
> On Thu, 21 Jan 2010, Michael S. Tsirkin wrote:
>
>
>> This is a backport of commit: 03db343a6320f780937078433fa7d8da955e6fce
>> modified in a way that introduces some code duplication on the one hand,
>> but reduces the risk of regressing existing eventfd users on the other
>> hand.
>>
>> KVM needs a wait to atomically remove themselves from the eventfd
>> ->poll() wait queue head, in order to handle correctly their IRQfd
>> deassign operation.
>>
>> This patch introduces such API, plus a way to read an eventfd from its
>> context.
>>
>> Signed-off-by: Michael S. Tsirkin<mst@redhat.com>
>> ---
>>
>> Avi, Davidel, how about only including the following part for -stable
>> then? Reason is, I still would like to be able to use irqfd there, and
>> getting spurious interrupts 100% of times unmask is done isn't a very
>> good idea IMO ...
>>
> It's the same thing. Unless there are *real* problems in KVM due to the
> spurious ints, I still think this is .33 material.
>

I agree.

But I think we can solve this in another way in .32: we can clear the
eventfd from irqfd->inject work, which is in process context. The new
stuff is only needed for lockless clearing, no?

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.