[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 02/14] block: Convert bdrv_io_plug() to co_wrapper
From: |
Emanuele Giuseppe Esposito |
Subject: |
Re: [PATCH 02/14] block: Convert bdrv_io_plug() to co_wrapper |
Date: |
Mon, 19 Dec 2022 13:24:17 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 |
Am 16/12/2022 um 15:26 schrieb Vladimir Sementsov-Ogievskiy:
> On 12/13/22 11:53, Kevin Wolf wrote:
>> From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
>>
>> BlockDriver->bdrv_io_plug is categorized as IO callback, and it
>> currently doesn't run in a coroutine. We should let it take a graph
>> rdlock since the callback traverses the block nodes graph, which however
>> is only possible in a coroutine.
>>
>> The only caller of this function is blk_io_plug(), therefore make
>> blk_io_plug() a co_wrapper, so that we're always running in a coroutine
>> where the lock can be taken.
>>
>> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
>> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
>> ---
>
> [..]
>
>> --- a/include/block/block_int-common.h
>> +++ b/include/block/block_int-common.h
>> @@ -729,7 +729,7 @@ struct BlockDriver {
>> void (*bdrv_debug_event)(BlockDriverState *bs, BlkdebugEvent
>> event);
>> /* io queue for linux-aio */
>> - void (*bdrv_io_plug)(BlockDriverState *bs);
>> + void coroutine_fn (*bdrv_io_plug)(BlockDriverState *bs);
>
> don't we want to rename it to _co_ too?
I think you realized this is done in patch 14
Thanks,
Emanuele
>
> anyway:
> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
>
>
>
- [PATCH 00/14] block: Move more functions to coroutines, Kevin Wolf, 2022/12/13
- [PATCH 02/14] block: Convert bdrv_io_plug() to co_wrapper, Kevin Wolf, 2022/12/13
- [PATCH 07/14] block: use bdrv_co_refresh_total_sectors when possible, Kevin Wolf, 2022/12/13
- [PATCH 01/14] block-coroutine-wrapper: support void functions, Kevin Wolf, 2022/12/13
- [PATCH 03/14] block: Convert bdrv_io_unplug() to co_wrapper, Kevin Wolf, 2022/12/13
- [PATCH 06/14] block-backend: use bdrv_getlength instead of blk_getlength, Kevin Wolf, 2022/12/13