Re: 5.13-rt1 + KVM = WARNING: at fs/eventfd.c:74 eventfd_signal()

From: Paolo Bonzini
Date: Mon Jul 26 2021 - 07:03:23 EST


On 24/07/21 06:33, Hillf Danton wrote:
lock WQ
count += n
no waiter
unlock WQ

Ok, this is a write.


lock WQ
add waiter for EPOLLIN
unlock WQ

This is eventfd_poll(). It hasn't yet returned EPOLLIN.

lock WQ
count = 0
wakeup EPOLLOUT
unlock WQ

This is a read().

lock WQ
count += n
no waiter
unlock WQ

This is wrong; after "unlock WQ" in CPU3 there *is* a waiter, no one has waked it up yet.

Paolo

------------------------------- c1 = count