[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v2 05/15] Make qcow2_open synchronous
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [RFC v2 05/15] Make qcow2_open synchronous |
Date: |
Thu, 29 Aug 2013 14:33:45 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Aug 09, 2013 at 07:43:55PM +0200, Charlie Shepherd wrote:
> The previous patch convert all .bdrv_open functions to run from a coroutine
> context. However
> qcow2's open method is also called from qcow2_invalidate_cache.
> bdrv_invalidate_cache is mainly
> called by migration.c, which doesn't run in coroutine context, so rather than
> propagating
> coroutine_fn annotations up the call chain, turn qcow2_open into a
> synchronous wrapper.
I think it would be cleaner to make .bdrv_open a coroutine function and
push the synchronous wrapper out to the callers. That way we can either
keep synchronous wrappers where necessary, or we can eventually convert
that synchronous code to coroutine code.
If you hide the synchronous wrapper inside qcow2 it blocks coroutine
callers who could otherwise use the event loop.
Stefan
- [Qemu-devel] [RFC v2 01/15] Add an explanation of when a function should be marked coroutine_fn, Charlie Shepherd, 2013/08/09
- [Qemu-devel] [RFC v2 02/15] Rename qemu_coroutine_self to qemu_coroutine_self_int and add an annotated wrapper, Charlie Shepherd, 2013/08/09
- [Qemu-devel] [RFC v2 03/15] Explicitly mark BlockDriver function .bdrv_create as coroutine and rename it bdrv_co_create., Charlie Shepherd, 2013/08/09
- [Qemu-devel] [RFC v2 05/15] Make qcow2_open synchronous, Charlie Shepherd, 2013/08/09
- [Qemu-devel] [RFC v2 04/15] Convert .bdrv_open and .bdrv_file_open to coroutine_fn, Charlie Shepherd, 2013/08/09
- [Qemu-devel] [RFC v2 07/15] Call bdrv->open via a synchronous wrapper in block/snapshot.c, Charlie Shepherd, 2013/08/09
- [Qemu-devel] [RFC v2 06/15] Explicitly mark BlockDriver functions .bdrv_write and .bdrv_read as coroutine functions, Charlie Shepherd, 2013/08/09
- [Qemu-devel] [RFC v2 08/15] Convert bdrv_create and associated functions to be coroutine_fn, Charlie Shepherd, 2013/08/09
- [Qemu-devel] [RFC v2 09/15] Add a synchronous wrapper bdrv_sync_rwco, Charlie Shepherd, 2013/08/09