From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
To: qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Fam Zheng <fam@euphon.net>,
qemu-devel@nongnu.org,
Emanuele Giuseppe Esposito <eesposit@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Max Reitz <mreitz@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>, John Snow <jsnow@redhat.com>
Subject: [PATCH v2 0/8] Block layer thread-safety, continued
Date: Mon, 19 Apr 2021 10:55:33 +0200 [thread overview]
Message-ID: <20210419085541.22310-1-eesposit@redhat.com> (raw)
This and the following serie of patches are based on Paolo's
v1 patches sent in 2017[*]. They have been ported to the current QEMU
version, but the goal remains the same:
- make the block layer thread-safe (patches 1-5), and
- remove aio_context_acquire/release (patches 6-8).
[*] = https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg01398.html
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
---
v1 (2017) -> v2 (2021):
- v1 Patch "block-backup: add reqs_lock" has been dropped, because now
is completely different from the old version and all functions
that were affected by it have been moved or deleted.
It will be replaced by another serie that aims to thread safety to
block/block-copy.c
- remaining v1 patches will be integrated in next serie.
- Patch "block: do not acquire AioContext in check_to_replace_node"
moves part of the logic of check_to_replace_node to the caller,
so that the function can be included in the aio_context_acquire/release
block that follows.
Emanuele Giuseppe Esposito (8):
block: prepare write threshold code for thread safety
block: protect write threshold QMP commands from concurrent requests
util: use RCU accessors for notifiers
block: make before-write notifiers thread-safe
block: add a few more notes on locking
block: do not acquire AioContext in check_to_replace_node
block/replication: do not acquire AioContext
block: do not take AioContext around reopen
block.c | 28 ++++++--------------
block/block-backend.c | 4 ---
block/io.c | 12 +++++++++
block/mirror.c | 9 -------
block/replication.c | 54 +++++++++------------------------------
block/write-threshold.c | 39 ++++++++++++++--------------
blockdev.c | 26 +++++++++----------
include/block/block.h | 1 +
include/block/block_int.h | 42 +++++++++++++++++++++++++++++-
util/notify.c | 13 +++++-----
10 files changed, 113 insertions(+), 115 deletions(-)
--
2.30.2
next reply other threads:[~2021-04-19 8:57 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-19 8:55 Emanuele Giuseppe Esposito [this message]
2021-04-19 8:55 ` [PATCH v2 1/8] block: prepare write threshold code for thread safety Emanuele Giuseppe Esposito
2021-05-05 8:50 ` Stefan Hajnoczi
2021-05-05 9:54 ` Vladimir Sementsov-Ogievskiy
2021-05-06 9:04 ` Stefan Hajnoczi
2021-05-06 9:14 ` Vladimir Sementsov-Ogievskiy
2021-04-19 8:55 ` [PATCH v2 2/8] block: protect write threshold QMP commands from concurrent requests Emanuele Giuseppe Esposito
2021-05-05 8:55 ` Stefan Hajnoczi
2021-05-05 11:29 ` Paolo Bonzini
2021-04-19 8:55 ` [PATCH v2 3/8] util: use RCU accessors for notifiers Emanuele Giuseppe Esposito
2021-05-05 9:47 ` Stefan Hajnoczi
2021-04-19 8:55 ` [PATCH v2 4/8] block: make before-write notifiers thread-safe Emanuele Giuseppe Esposito
2021-04-21 21:23 ` Vladimir Sementsov-Ogievskiy
2021-04-21 22:17 ` Vladimir Sementsov-Ogievskiy
2021-04-19 8:55 ` [PATCH v2 5/8] block: add a few more notes on locking Emanuele Giuseppe Esposito
2021-05-05 9:53 ` Stefan Hajnoczi
2021-04-19 8:55 ` [PATCH v2 6/8] block: do not acquire AioContext in check_to_replace_node Emanuele Giuseppe Esposito
2021-05-05 10:10 ` Paolo Bonzini
2021-04-19 8:55 ` [PATCH v2 7/8] block/replication: do not acquire AioContext Emanuele Giuseppe Esposito
2021-05-05 9:57 ` Stefan Hajnoczi
2021-05-05 10:33 ` Paolo Bonzini
2021-04-19 8:55 ` [PATCH v2 8/8] block: do not take AioContext around reopen Emanuele Giuseppe Esposito
2021-04-21 12:24 ` Paolo Bonzini
2021-05-05 10:01 ` Stefan Hajnoczi
2021-04-21 12:25 ` [PATCH v2 0/8] Block layer thread-safety, continued Paolo Bonzini
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=20210419085541.22310-1-eesposit@redhat.com \
--to=eesposit@redhat.com \
--cc=armbru@redhat.com \
--cc=fam@euphon.net \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.