Am 08.07.2015 um 03:02 schrieb Fam Zheng:
> On Tue, 07/07 16:54, Christian Borntraeger wrote:
>> Am 30.06.2015 um 15:19 schrieb Fam Zheng:
>>> epoll is more scalable than ppoll. It performs faster than ppoll when the
>>> number of polled fds is high.
>>>
>>> See patch 4 for an example of the senario and some benchmark data.
>>>
>>> Note: it is only effective on iothread (dataplane), while the main loop 
>>> cannot
>>> benefit from this yet, because the iohandler and chardev GSource's don't 
>>> easily
>>> fit into this epoll interface style (that's why main loop uses qemu_poll_ns
>>> directly instead of aio_poll()).
>>>
>>> There is hardly any timer activity in iothreads for now, as a result the
>>> timeout is always 0 or -1. Therefore, timerfd, or the said nanosecond
>>> epoll_pwait1 interface, which fixes the timeout granularity deficiency is 
>>> not
>>> immediately necessary at this point, but still that will be simple to add.
>>>
>>> Please review!
>>
>> Is there a branch somewhere, so that I could give it a spin?
>>
> 
> Here:
> 
> https://github.com/famz/qemu/tree/aio-posix-epoll
> 
In file included from /home/cborntra/REPOS/qemu/include/qemu/option.h:31:0,
                 from /home/cborntra/REPOS/qemu/include/qemu-common.h:44,
                 from /home/cborntra/REPOS/qemu/async.c:25:
/home/cborntra/REPOS/qemu/async.c: In function 'aio_context_new':
/home/cborntra/REPOS/qemu/include/qapi/error.h:57:20: error: 'ret' may be used 
uninitialized in this function [-Werror=maybe-uninitialized]
     error_set_errno(errp, os_error, ERROR_CLASS_GENERIC_ERROR, \
                    ^
/home/cborntra/REPOS/qemu/async.c:291:9: note: 'ret' was declared here
     int ret;
         ^
cc1: all warnings being treated as errors

With that fixed, it seems to work. Still looking at the performance.


Reply via email to