[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/3] block: convert qemu_aio_flush() calls to bd
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 3/3] block: convert qemu_aio_flush() calls to bdrv_drain_all() |
Date: |
Wed, 30 Nov 2011 12:54:30 +0000 |
On Wed, Nov 30, 2011 at 12:28 PM, Christoph Hellwig <address@hidden> wrote:
> On Wed, Nov 30, 2011 at 12:23:43PM +0000, Stefan Hajnoczi wrote:
>> Many places in QEMU call qemu_aio_flush() to complete all pending
>> asynchronous I/O. Most of these places actually want to drain all block
>> requests but there is block layer API to do so.
>
> there seems to be a "not" missing in the last half sentence.
>
>>
>> This patch introduces the bdrv_drain_all() API to wait for requests
>> across all BlockDriverStates to complete. As a bonus we perform checks
>> after qemu_aio_wait() to ensure that requests really have finished.
>
> It looks like all but four of the callers actually just want to drain a
> single BlockDriverState. And one of those four already has its own loop
> over all BlockDriverStates.
Yes, we still don't have an interface for waiting on just one
BlockDriverState. virtio-blk even has a comment about the fact that
there is no per-block device way of waiting.
I think this should be done later since it is independent of adding
these asserts after qemu_aio_flush() (which is what this patch does).
Stefan