[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC 0/4] aio: Use epoll_wait in aio_poll
From: |
Christian Borntraeger |
Subject: |
Re: [Qemu-devel] [PATCH RFC 0/4] aio: Use epoll_wait in aio_poll |
Date: |
Wed, 08 Jul 2015 09:59:15 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
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.