On Wed, Apr 11, 2018 at 06:39:27PM +0200, Kevin Wolf wrote: > Commit 91af091f923 added an additional aio_poll() to BDRV_POLL_WHILE() > in order to make sure that all pending BHs are executed on drain. This > was the wrong place to make the fix, as it is useless overhead for all > other users of the macro and unnecessarily complicates the mechanism. > > This patch effectively reverts said commit (the context has changed a > bit and the code has moved to AIO_WAIT_WHILE()) and instead polls in the > loop condition for drain. > > The effect is probably hard to measure in any real-world use case > because actual I/O will dominate, but if I run only the initialisation > part of 'qemu-img convert' where it calls bdrv_block_status() for the > whole image to find out how much data there is copy, this phase actually > needs only roughly half the time after this patch. > > Signed-off-by: Kevin Wolf <kw...@redhat.com> > --- > include/block/aio-wait.h | 22 ++++++++-------------- > block/io.c | 11 ++++++++++- > 2 files changed, 18 insertions(+), 15 deletions(-)
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
signature.asc
Description: PGP signature