From: Sergio Lopez <slp@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, armbru@redhat.com, qemu-devel@nongnu.org,
Sergio Lopez <slp@redhat.com>,
mreitz@redhat.com
Subject: [Qemu-devel] [PATCH v2 0/2] blockdev: avoid acquiring AioContext lock twice at do_drive_backup()
Date: Fri, 13 Sep 2019 17:25:06 +0200 [thread overview]
Message-ID: <20190913152507.56197-1-slp@redhat.com> (raw)
do_drive_backup() acquires the AioContext lock of the corresponding
BlockDriverState. This is not a problem when it's called from
qmp_drive_backup(), but drive_backup_prepare() also acquires the lock
before calling it.
Additionally, Max Reitz pointed out that bdrv_try_set_aio_context() is
called at do_backup_common() with the new context held, and the old
context not held, while it expects it to be the other way
around. This is also the case for other uses of that function on
blockdev.c.
This patch series fixes all occurrences of bdrv_try_set_aio_context()
to honor the context requirements. It also changes
drive_backup_prepare() to release the context before calling
do_drive_backup().
---
Changelog
v2:
- Honor bdrv_try_set_aio_context() context acquisition requirements
(thanks Max Reitz).
- Release the context at drive_backup_prepare() instead of avoiding
re-acquiring it at do_drive_baclup(). (thanks Max Reitz)
- Convert a single patch into a two-patch series.
---
Sergio Lopez (2):
blockdev: release the AioContext at drive_backup_prepare
blockdev: honor bdrv_try_set_aio_context() context requirements
blockdev.c | 127 ++++++++++++++++++++++++++++++++---------------------
1 file changed, 76 insertions(+), 51 deletions(-)
--
2.21.0
next reply other threads:[~2019-09-13 15:28 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-13 15:25 Sergio Lopez [this message]
2019-09-13 15:25 ` [Qemu-devel] [PATCH v2 1/2] blockdev: release the AioContext at drive_backup_prepare Sergio Lopez
2019-09-13 19:54 ` [Qemu-devel] [Qemu-block] " John Snow
2019-09-16 7:53 ` Kevin Wolf
2019-09-16 11:17 ` Sergio Lopez
2019-10-03 9:33 ` Sergio Lopez
2019-10-10 15:02 ` Kevin Wolf
2019-09-16 11:17 ` [Qemu-devel] " Sergio Lopez
2019-09-13 15:25 ` [Qemu-devel] [PATCH v2 2/2] blockdev: honor bdrv_try_set_aio_context() context requirements Sergio Lopez
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=20190913152507.56197-1-slp@redhat.com \
--to=slp@redhat.com \
--cc=armbru@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/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).