qemu-devel
[Top][All Lists]
Advanced

[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(-)
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]