[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 12/15] block-coroutine-wrapper.py: default to main loop ai
From: |
Kevin Wolf |
Subject: |
Re: [PATCH v5 12/15] block-coroutine-wrapper.py: default to main loop aiocontext if function does not have a BlockDriverState parameter |
Date: |
Wed, 23 Nov 2022 18:09:52 +0100 |
Am 23.11.2022 um 12:42 hat Emanuele Giuseppe Esposito geschrieben:
> Right now, we take the first parameter of the function to get the
> BlockDriverState to pass to bdrv_poll_co(), that internally calls
> functions that figure in which aiocontext the coroutine should run.
>
> However, it is useless to pass a bs just to get its own AioContext,
> so instead pass it directly, and default to the main loop if no
> BlockDriverState is passed as parameter.
>
> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Patch 10 and 11 have the same subject line. Did you intend them to be
squashed together?
> diff --git a/scripts/block-coroutine-wrapper.py
> b/scripts/block-coroutine-wrapper.py
> index 7e8f2da84b..1d552cb734 100644
> --- a/scripts/block-coroutine-wrapper.py
> +++ b/scripts/block-coroutine-wrapper.py
> @@ -78,14 +78,14 @@ def __init__(self, return_type: str, name: str, args: str,
>
> t = self.args[0].type
> if t == 'BlockDriverState *':
> - bs = 'bs'
> + ctx = 'bdrv_get_aio_context(bs)'
> elif t == 'BdrvChild *':
> - bs = 'child->bs'
> + ctx = 'bdrv_get_aio_context(child->bs)'
> elif t == 'BlockBackend *':
> - bs = 'blk_bs(blk)'
> + ctx = 'bdrv_get_aio_context(blk_bs(blk))'
This should use blk_get_aio_context(). If a BlockBackend has no root
attached, i.e. blk_bs(blk) == NULL, it can still be in a non-mainloop
AioContext.
Kevin
- Re: [PATCH v5 06/15] block: avoid duplicating filename string in bdrv_create, (continued)
- [PATCH v5 05/15] block/vmdk: add missing coroutine_fn annotations, Emanuele Giuseppe Esposito, 2022/11/23
- [PATCH v5 08/15] block: distinguish between bdrv_create running in coroutine and not, Emanuele Giuseppe Esposito, 2022/11/23
- [PATCH v5 09/15] block: bdrv_create_file is a coroutine_fn, Emanuele Giuseppe Esposito, 2022/11/23
- [PATCH v5 11/15] block-coroutine-wrapper.py: default to main loop aiocontext if function does not have a BlockDriverState parameter, Emanuele Giuseppe Esposito, 2022/11/23
- [PATCH v5 15/15] block/dirty-bitmap: convert coroutine-only functions to generated_co_wrapper_simple, Emanuele Giuseppe Esposito, 2022/11/23
- [PATCH v5 14/15] block: convert bdrv_create to generated_co_wrapper_simple, Emanuele Giuseppe Esposito, 2022/11/23
- [PATCH v5 12/15] block-coroutine-wrapper.py: default to main loop aiocontext if function does not have a BlockDriverState parameter, Emanuele Giuseppe Esposito, 2022/11/23
- Re: [PATCH v5 12/15] block-coroutine-wrapper.py: default to main loop aiocontext if function does not have a BlockDriverState parameter,
Kevin Wolf <=
- [PATCH v5 13/15] block-coroutine-wrapper.py: support also basic return types, Emanuele Giuseppe Esposito, 2022/11/23
- [PATCH v5 01/15] block-io: introduce coroutine_fn duplicates for bdrv_common_block_status_above callers, Emanuele Giuseppe Esposito, 2022/11/23