From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, hreitz@redhat.com, stefanha@redhat.com,
mjt@tls.msk.ru, eblake@redhat.com, pbonzini@redhat.com,
qemu-devel@nongnu.org, qemu-stable@nongnu.org
Subject: [PATCH 0/3] block/graph-lock: Disable locking for now
Date: Wed, 17 May 2023 17:28:31 +0200 [thread overview]
Message-ID: <20230517152834.277483-1-kwolf@redhat.com> (raw)
tl;dr is that graph locking introduced deadlocks in 8.0, and disabling
it for now fixes them again. See patch 1 for the details.
I still intend the fix this properly before we remove the AioContext
lock (which is when the deadlock would be automatically solved), but
it's not trivial enough for something that would be ready now and
backportable to stable versions. Let's try the real thing again in 8.1
and fix 8.0 with this stopgap solution.
Patch 2 is a prerequisite for the test case. Instead of reproducing the
deadlock problem (which it unfortunately doesn't do reliably anyway, the
timing seems hard to get right), I got NBD server crashes without it. I
actually made some more NBD changes to fix the crashes before this one,
but it seems to be stable with only this. Maybe the rest only fixed
symptoms of the same root cause, I'll have another look at them.
Kevin Wolf (3):
graph-lock: Disable locking for now
nbd/server: Fix drained_poll to wake coroutine in right AioContext
iotests: Test commit with iothreads and ongoing I/O
include/io/channel.h | 10 ++++
block/graph-lock.c | 21 +++++++
io/channel.c | 33 +++++++++--
nbd/server.c | 3 +-
tests/qemu-iotests/iotests.py | 4 ++
.../qemu-iotests/tests/graph-changes-while-io | 56 +++++++++++++++++--
.../tests/graph-changes-while-io.out | 4 +-
7 files changed, 117 insertions(+), 14 deletions(-)
--
2.40.1
next reply other threads:[~2023-05-17 15:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-17 15:28 Kevin Wolf [this message]
2023-05-17 15:28 ` [PATCH 1/3] graph-lock: Disable locking for now Kevin Wolf
2023-05-18 12:39 ` Eric Blake
2023-05-17 15:28 ` [PATCH 2/3] nbd/server: Fix drained_poll to wake coroutine in right AioContext Kevin Wolf
2023-05-18 12:43 ` Eric Blake
2023-05-17 15:28 ` [PATCH 3/3] iotests: Test commit with iothreads and ongoing I/O Kevin Wolf
2023-05-18 21:00 ` Eric Blake
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=20230517152834.277483-1-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=eblake@redhat.com \
--cc=hreitz@redhat.com \
--cc=mjt@tls.msk.ru \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@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).