[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 00/23] block: Lock the graph, part 2 (BlockDriver callbacks)
From: |
Emanuele Giuseppe Esposito |
Subject: |
Re: [PATCH 00/23] block: Lock the graph, part 2 (BlockDriver callbacks) |
Date: |
Fri, 17 Feb 2023 11:12:51 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 |
Am 03/02/2023 um 16:21 schrieb Kevin Wolf:
> After introducing the graph lock in a previous series, this series
> actually starts making widespread use of it.
>
> Most of the BlockDriver callbacks access the children list in some way,
> so you need to hold the graph lock to call them. The patches in this
> series add the corresponding GRAPH_RDLOCK annotations and take the lock
> in places where it doesn't happen yet - all of the bdrv_*() co_wrappers
> are already covered, but in particular BlockBackend coroutine_fns still
> need it.
>
> There is no particularly good reason why exactly these patches and not
> others are included in the series. I couldn't find a self-contained part
> that could reasonable be addressed in a single series. So these just
> happen to be patches that are somewhat related (centered around the
> BlockDriver callback theme), are ready and their number looks
> manageable. You will still see some FIXMEs at the end of the series
> that will only be addressed in future patches.
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
>
> Emanuele Giuseppe Esposito (5):
> block/qed: add missing graph rdlock in qed_need_check_timer_entry
> block: Mark bdrv_co_flush() and callers GRAPH_RDLOCK
> block: Mark bdrv_co_pdiscard() and callers GRAPH_RDLOCK
> block: Mark bdrv_co_copy_range() GRAPH_RDLOCK
> block: Mark bdrv_co_is_inserted() and callers GRAPH_RDLOCK
>
> Kevin Wolf (18):
> block: Make bdrv_can_set_read_only() static
> mirror: Fix access of uninitialised fields during start
> block: Mark bdrv_co_truncate() and callers GRAPH_RDLOCK
> block: Mark bdrv_co_block_status() and callers GRAPH_RDLOCK
> block: Mark bdrv_co_ioctl() and callers GRAPH_RDLOCK
> block: Mark bdrv_co_pwrite_zeroes() and callers GRAPH_RDLOCK
> block: Mark read/write in block/io.c GRAPH_RDLOCK
> block: Mark public read/write functions GRAPH_RDLOCK
> block: Mark bdrv_co_pwrite_sync() and callers GRAPH_RDLOCK
> block: Mark bdrv_co_do_pwrite_zeroes() GRAPH_RDLOCK
> block: Mark preadv_snapshot/snapshot_block_status GRAPH_RDLOCK
> block: Mark bdrv_co_create() and callers GRAPH_RDLOCK
> block: Mark bdrv_co_io_(un)plug() and callers GRAPH_RDLOCK
> block: Mark bdrv_co_eject/lock_medium() and callers GRAPH_RDLOCK
> block: Mark bdrv_(un)register_buf() GRAPH_RDLOCK
> block: Mark bdrv_co_delete_file() and callers GRAPH_RDLOCK
> block: Mark bdrv_*_dirty_bitmap() and callers GRAPH_RDLOCK
> block: Mark bdrv_co_refresh_total_sectors() and callers GRAPH_RDLOCK
>
> block/coroutines.h | 2 +-
> block/qcow2.h | 27 +++--
> block/qed.h | 45 ++++----
> include/block/block-copy.h | 6 +-
> include/block/block-global-state.h | 14 ++-
> include/block/block-io.h | 110 +++++++++---------
> include/block/block_int-common.h | 173 ++++++++++++++++-------------
> include/block/block_int-io.h | 53 ++++-----
> include/block/dirty-bitmap.h | 12 +-
> include/sysemu/block-backend-io.h | 7 +-
> block.c | 12 +-
> block/backup.c | 3 +
> block/blkdebug.c | 19 ++--
> block/blklogwrites.c | 35 +++---
> block/blkreplay.c | 24 ++--
> block/blkverify.c | 5 +-
> block/block-backend.c | 39 +++++--
> block/block-copy.c | 32 +++---
> block/bochs.c | 2 +-
> block/commit.c | 5 +-
> block/copy-before-write.c | 33 +++---
> block/copy-on-read.c | 44 ++++----
> block/create.c | 9 +-
> block/crypto.c | 16 +--
> block/dirty-bitmap.c | 2 +
> block/file-posix.c | 27 ++---
> block/file-win32.c | 7 +-
> block/filter-compress.c | 36 +++---
> block/io.c | 108 +++++++++++-------
> block/iscsi.c | 28 ++---
> block/mirror.c | 59 ++++++----
> block/parallels.c | 33 +++---
> block/preallocate.c | 38 ++++---
> block/qcow.c | 46 ++++----
> block/qcow2-cluster.c | 17 ++-
> block/qcow2.c | 136 ++++++++++++-----------
> block/qed-check.c | 3 +-
> block/qed-table.c | 10 +-
> block/qed.c | 101 +++++++++--------
> block/quorum.c | 62 ++++++-----
> block/raw-format.c | 76 ++++++-------
> block/replication.c | 18 ++-
> block/snapshot-access.c | 8 +-
> block/stream.c | 40 ++++---
> block/throttle.c | 36 +++---
> block/vdi.c | 11 +-
> block/vhdx.c | 18 +--
> block/vmdk.c | 132 ++++++++++------------
> block/vpc.c | 11 +-
> qemu-img.c | 8 +-
> tests/unit/test-bdrv-drain.c | 20 ++--
> tests/unit/test-block-iothread.c | 3 +-
> 52 files changed, 983 insertions(+), 838 deletions(-)
>
- [PATCH 15/23] block: Mark preadv_snapshot/snapshot_block_status GRAPH_RDLOCK, (continued)
- [PATCH 15/23] block: Mark preadv_snapshot/snapshot_block_status GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 14/23] block: Mark bdrv_co_copy_range() GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 17/23] block: Mark bdrv_co_io_(un)plug() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 18/23] block: Mark bdrv_co_is_inserted() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 16/23] block: Mark bdrv_co_create() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 19/23] block: Mark bdrv_co_eject/lock_medium() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 20/23] block: Mark bdrv_(un)register_buf() GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 21/23] block: Mark bdrv_co_delete_file() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 22/23] block: Mark bdrv_*_dirty_bitmap() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 23/23] block: Mark bdrv_co_refresh_total_sectors() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- Re: [PATCH 00/23] block: Lock the graph, part 2 (BlockDriver callbacks),
Emanuele Giuseppe Esposito <=
- Re: [PATCH 00/23] block: Lock the graph, part 2 (BlockDriver callbacks), Stefan Hajnoczi, 2023/02/21