[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 02/13] test-bdrv-drain: Don't yield in .bdrv_co_drained_begin
From: |
Emanuele Giuseppe Esposito |
Subject: |
Re: [PATCH 02/13] test-bdrv-drain: Don't yield in .bdrv_co_drained_begin/end() |
Date: |
Fri, 11 Nov 2022 12:14:36 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 |
Am 08/11/2022 um 13:37 schrieb Kevin Wolf:
> We want to change .bdrv_co_drained_begin/end() back to be non-coroutine
> callbacks, so in preparation, avoid yielding in their implementation.
>
> This does almost the same as the existing logic in bdrv_drain_invoke(),
> by creating and entering coroutines internally. However, since the test
> case is by far the heaviest user of coroutine code in drain callbacks,
> it is preferable to have the complexity in the test case rather than the
> drain core, which is already complicated enough without this.
>
> The behaviour for bdrv_drain_begin() is unchanged because we increase
> bs->in_flight and this is still polled. However, bdrv_drain_end()
> doesn't wait for the spawned coroutine to complete any more. This is
> fine, we don't rely on bdrv_drain_end() restarting all operations
> immediately before the next aio_poll().
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
- Re: [PATCH 04/13] block: Remove drained_end_counter, (continued)
- [PATCH 06/13] block: Drain invidual nodes during reopen, Kevin Wolf, 2022/11/08
- [PATCH 02/13] test-bdrv-drain: Don't yield in .bdrv_co_drained_begin/end(), Kevin Wolf, 2022/11/08
- [PATCH 07/13] block: Don't use subtree drains in bdrv_drop_intermediate(), Kevin Wolf, 2022/11/08
- [PATCH 10/13] block: Call drain callbacks only once, Kevin Wolf, 2022/11/08
- [PATCH 08/13] stream: Replace subtree drain with a single node drain, Kevin Wolf, 2022/11/08