From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org
Cc: pbonzini@redhat.com, stefanha@redhat.com, qemu-devel@nongnu.org
Subject: Re: [PATCH 00/23] block: Lock the graph, part 2 (BlockDriver callbacks)
Date: Fri, 17 Feb 2023 11:12:51 +0100 [thread overview]
Message-ID: <b5098927-79b9-a88b-750d-e42f7fdeab9a@redhat.com> (raw)
In-Reply-To: <20230203152202.49054-1-kwolf@redhat.com>
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(-)
>
next prev parent reply other threads:[~2023-02-17 10:13 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-03 15:21 [PATCH 00/23] block: Lock the graph, part 2 (BlockDriver callbacks) Kevin Wolf
2023-02-03 15:21 ` [PATCH 01/23] block: Make bdrv_can_set_read_only() static Kevin Wolf
2023-02-22 16:27 ` Vladimir Sementsov-Ogievskiy
2023-02-03 15:21 ` [PATCH 02/23] mirror: Fix access of uninitialised fields during start Kevin Wolf
2023-02-22 16:32 ` Vladimir Sementsov-Ogievskiy
2023-02-03 15:21 ` [PATCH 03/23] block: Mark bdrv_co_truncate() and callers GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:21 ` [PATCH 04/23] block: Mark bdrv_co_block_status() " Kevin Wolf
2023-02-03 15:21 ` [PATCH 05/23] block: Mark bdrv_co_ioctl() " Kevin Wolf
2023-02-03 15:21 ` [PATCH 06/23] block/qed: add missing graph rdlock in qed_need_check_timer_entry Kevin Wolf
2023-02-03 15:21 ` [PATCH 07/23] block: Mark bdrv_co_flush() and callers GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:21 ` [PATCH 08/23] block: Mark bdrv_co_pdiscard() " Kevin Wolf
2023-02-03 15:21 ` [PATCH 09/23] block: Mark bdrv_co_pwrite_zeroes() " Kevin Wolf
2023-02-03 15:21 ` [PATCH 10/23] block: Mark read/write in block/io.c GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:21 ` [PATCH 11/23] block: Mark public read/write functions GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:21 ` [PATCH 12/23] block: Mark bdrv_co_pwrite_sync() and callers GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:21 ` [PATCH 13/23] block: Mark bdrv_co_do_pwrite_zeroes() GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:21 ` [PATCH 14/23] block: Mark bdrv_co_copy_range() GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:21 ` [PATCH 15/23] block: Mark preadv_snapshot/snapshot_block_status GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:21 ` [PATCH 16/23] block: Mark bdrv_co_create() and callers GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:21 ` [PATCH 17/23] block: Mark bdrv_co_io_(un)plug() " Kevin Wolf
2023-02-03 15:21 ` [PATCH 18/23] block: Mark bdrv_co_is_inserted() " Kevin Wolf
2023-02-03 15:21 ` [PATCH 19/23] block: Mark bdrv_co_eject/lock_medium() " Kevin Wolf
2023-02-03 15:21 ` [PATCH 20/23] block: Mark bdrv_(un)register_buf() GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:22 ` [PATCH 21/23] block: Mark bdrv_co_delete_file() and callers GRAPH_RDLOCK Kevin Wolf
2023-02-03 15:22 ` [PATCH 22/23] block: Mark bdrv_*_dirty_bitmap() " Kevin Wolf
2023-02-03 15:22 ` [PATCH 23/23] block: Mark bdrv_co_refresh_total_sectors() " Kevin Wolf
2023-02-17 10:12 ` Emanuele Giuseppe Esposito [this message]
2023-02-21 22:13 ` [PATCH 00/23] block: Lock the graph, part 2 (BlockDriver callbacks) Stefan Hajnoczi
2023-02-23 11:48 ` Kevin Wolf
2023-02-23 12:46 ` Stefan Hajnoczi
2023-02-23 20:33 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b5098927-79b9-a88b-750d-e42f7fdeab9a@redhat.com \
--to=eesposit@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).