[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll() |
Date: |
Wed, 27 May 2015 11:38:57 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 |
On 27/05/2015 09:19, Fam Zheng wrote:
> This series looks at the other side of the broken "qmp transaction" problem
> with dataplane [1] - the event loop.
>
> Before, an ioeventfd of a non-dataplane device is registered via
> qemu_set_fd_handler, which is only polled directly by main_loop_wait(), not in
> aio_poll(); an ioeventfd of a dataplane device (virtio-blk/virtio-scsi) is
> registered specially via aio_set_event_notifier, which is a wrapper of
> aio_set_fd_handler, thus it WILL be polled by all aio_poll().
>
> As explained in [1], and in patch 3, this is wrong. The handlers mustn't run.
>
> [1] Fixes it by unregistering them temporarily around such nested poll, while
> this series fixes it by skipping those file descriptors in all nested
> aio_poll(), just like how iohandler behaves in the main loop.
>
> On the one hand, it is simpler than [1]; on the other hand, this approach is
> also interesting because once we remove qemu_set_fd_handler2 [2], iohandler.c
> can be removed by converting all qemu_set_fd_handler to the new
> aio_set_io_event_notifier introduced in this series.
I don't think this can work.
Whenever the main context is doing synchronous work for dataplane, it is
in the outermost aio_poll.
Paolo
- [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll(), Fam Zheng, 2015/05/27
- [Qemu-devel] [RFC PATCH 1/4] aio-posix: Introduce aio_set_io_event_notifier, Fam Zheng, 2015/05/27
- [Qemu-devel] [RFC PATCH 2/4] aio-win32: Implement aio_set_io_event_notifier, Fam Zheng, 2015/05/27
- [Qemu-devel] [RFC PATCH 3/4] virtio-blk: Use aio_set_io_event_notifier in dataplane, Fam Zheng, 2015/05/27
- [Qemu-devel] [RFC PATCH 4/4] virtio-scsi-dataplane: User aio_set_io_event_notifier, Fam Zheng, 2015/05/27
- Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll(),
Paolo Bonzini <=
- Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll(), Fam Zheng, 2015/05/27
- Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll(), Paolo Bonzini, 2015/05/28
- Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll(), Fam Zheng, 2015/05/28
- Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll(), Paolo Bonzini, 2015/05/28
- Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll(), Fam Zheng, 2015/05/28
- Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll(), Paolo Bonzini, 2015/05/28
- Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll(), Fam Zheng, 2015/05/28
- Re: [Qemu-devel] [RFC PATCH 0/4] aio: Don't poll ioeventfd in nested aio_poll(), Paolo Bonzini, 2015/05/28