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