On 2011-09-27 16:19, Anthony Liguori wrote: > On 09/27/2011 09:11 AM, Avi Kivity wrote: >> On 09/27/2011 05:07 PM, Anthony Liguori wrote: >>> >>> You don't expect to handle EAGAIN with eventfd() whereas you have to handle >>> it >>> with pipe(). >>> >>> Moreover, the eventfd() counter is not lossy (practically speaking) whereas >>> if >>> you use pipe() as a counter, it will be lossy in practice. >>> >>> This is why posix aio uses pipe() and not eventfd(). >> >> We could define a qemu_event mechanism that satisfies the least common >> denominator, and is implemented by eventfd when available. >> >> qemu_event_create() >> qemu_event_signal() >> qemu_event_wait() >> qemu_event_poll_add() // registers in main loop >> qemu_event_poll_del() > > See hw/event_notifier.[ch].
That code looks suspicious, btw. It claims things ("we use EFD_SEMAPHORE") it does not do. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux