History | View | Annotate | Download (5.8 kB)
aio: Fix return value of aio_poll()
aio_poll() must return true if any work is still pending, even if itdidn't make progress, so that bdrv_drain_all() doesn't stop waiting tooearly. The possibility of stopping early occasionally lead to a failedassertion in bdrv_drain_all(), when some in-flight request was missed...
misc: move include files to include/qemu/
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
block: move include files to include/block/
aio: avoid livelock behavior for Win32
The repeated calls to WaitForMultipleObjects may cause a livelock in aio_poll,where no progress is made on bottom halves. This patch matches the behaviorof the POSIX code.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>...
aio: add Win32 implementation
The Win32 implementation will only accept EventNotifiers, thus a fewdrivers are disabled under Windows. EventNotifiers are a good matchfor the GSource implementation, too, because the Win32 port of gliballows to place their HANDLEs in a GPollFD....
aio: make AioContexts GSources
This lets AioContexts be used (optionally) with a glib main loop.
aio: call aio_notify after setting I/O handlers
In the current code, this is done by qemu_set_fd_handler2, which iscalled by qemu_aio_set_fd_handler. We need to keep the same behavioreven after removing the call to qemu_set_fd_handler2.
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>...