On Fri, 24 Apr 2009, Gregory Haskins wrote: > Davide Libenzi wrote: > > On Thu, 23 Apr 2009, Gregory Haskins wrote: > > > > > >>> Take a look at init_waitqueue_func_entry(), in particula at that "func" > >>> parameter. Then look at how __wake_up_common() does its thing. > >>> You don't need to be "waiting" for our wakeup system to work. Callbacks > >>> works just fine, otherwise things like epoll could not work at all. > >>> > >>> > >> Yeah, I was looking at that this afternoon after you mentioned it. That > >> makes sense. > >> > >> As of right now the wqh is embedded in the eventfd, accessible only by > >> the .read() vtable entry. In order to do this as you suggest, I imagine > >> I need to slightly modify the eventfd interface to allow waiters other > >> than the embedded readers to join the wait-queue. How would you like to > >> see that interface look? > >> > > > > Actually, you need no changes in eventfd, since you can use its poll() > > directly, by dropping a callback entry. > > Take a look at how epoll does it in ep_insert()... > > > Ah! I just tried your suggestion and it was simple and it works. That > is brilliant. > > I will post a follow-up v2 that drops patch 2/3. Thanks, Davide. I assume you're in control of the file/fd lifetime, so that the file* cannot vanish while you've your wait_queue dropped inside its wait_queue_head, isn't it? - Davide -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html