[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 09/28] block: bdrv/blk_co_unref() for calls in coroutine conte
From: |
Kevin Wolf |
Subject: |
Re: [PULL 09/28] block: bdrv/blk_co_unref() for calls in coroutine context |
Date: |
Mon, 15 May 2023 15:07:31 +0200 |
Am 11.05.2023 um 17:32 hat Michael Tokarev geschrieben:
> 10.05.2023 15:20, Kevin Wolf wrote:
> > These functions must not be called in coroutine context, because they
> > need write access to the graph.
>
> How important for this and 2 surrounding changes to be for 7.2-stable
> (if we'll ever release one)? It smells like real bugs are being fixed
> here, is it ever possible to hit those in 7.2?
>
> Provided that whole no_coroutine_fn &Co infrastructure is missing there,
> including the no_co_wrapper parts? It's not difficult to back-port some
> of that stuff to 7.2.
In theory this has always been wrong, but we've only seen actual bugs
manifesting in 8.0 with the other multiqueue-related changes. So I think
it's safe to skip them for 7.2.
The bug fixed by the previous patch (bdrv_activate()) might not even
theoretically be a problem while bdrv_co_activate() didn't exist, though
I haven't investigated this in detail.
Kevin
- [PULL 12/28] test-bdrv-drain: Don't modify the graph in coroutines, (continued)
- [PULL 12/28] test-bdrv-drain: Don't modify the graph in coroutines, Kevin Wolf, 2023/05/10
- [PULL 15/28] block: .bdrv_open is non-coroutine and unlocked, Kevin Wolf, 2023/05/10
- [PULL 10/28] block: Don't call no_coroutine_fns in qmp_block_resize(), Kevin Wolf, 2023/05/10
- [PULL 11/28] iotests: Test resizing image attached to an iothread, Kevin Wolf, 2023/05/10
- [PULL 14/28] graph-lock: Fix GRAPH_RDLOCK_GUARD*() to be reader lock, Kevin Wolf, 2023/05/10
- [PULL 13/28] graph-lock: Add GRAPH_UNLOCKED(_PTR), Kevin Wolf, 2023/05/10
- [PULL 16/28] nbd: Remove nbd_co_flush() wrapper function, Kevin Wolf, 2023/05/10
- [PULL 20/28] block: Mark bdrv_co_get_allocated_file_size() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/05/10
- [PULL 09/28] block: bdrv/blk_co_unref() for calls in coroutine context, Kevin Wolf, 2023/05/10
- [PULL 18/28] vhdx: Require GRAPH_RDLOCK for accessing a node's parent list, Kevin Wolf, 2023/05/10
- [PULL 19/28] mirror: Require GRAPH_RDLOCK for accessing a node's parent list, Kevin Wolf, 2023/05/10
- [PULL 23/28] block: Mark BlockDriver callbacks for amend job GRAPH_RDLOCK, Kevin Wolf, 2023/05/10
- [PULL 22/28] block: Mark bdrv_co_debug_event() GRAPH_RDLOCK, Kevin Wolf, 2023/05/10
- [PULL 17/28] nbd: Mark nbd_co_do_establish_connection() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/05/10
- [PULL 26/28] block: Mark bdrv_recurse_can_replace() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/05/10
- [PULL 25/28] block: Mark bdrv_query_block_graph_info() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/05/10
- [PULL 27/28] block: Mark bdrv_refresh_limits() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/05/10
- [PULL 24/28] block: Mark bdrv_query_bds_stats() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/05/10