From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org, kwolf@redhat.com
Subject: Re: [PATCH v3 for-10.2 00/13] Fix deadlock with bdrv_open of self-served NBD
Date: Thu, 13 Nov 2025 09:07:14 +0000 [thread overview]
Message-ID: <aRWfwmWz2LfgMKrs@redhat.com> (raw)
In-Reply-To: <20251113011625.878876-15-eblake@redhat.com>
Seems you sent a v3 twice today. I reviewed the earlier v3 and
assume this v3 is an identical accident dupe. If this is actually
a v3 let me know and i'll review further...
On Wed, Nov 12, 2025 at 07:11:25PM -0600, Eric Blake wrote:
> v2 was here:
> https://lists.nongnu.org/archive/html/qemu-devel/2025-11/msg01243.html
>
> Since then:
> - drop patch 7/12; refcounting for GSource case is now unchanged
> - add a couple of patches: fix a chardev leaky abstraction, and add a
> mutex lock for cross-thread safety
> - improve commit messages to document why NBD is safe now, even without
> adding notify callbacks to AioContext
>
> Now that the new behavior is opt-in rather than a change of defaults,
> and only NBD opts in, it should still be safe to include in 10.2.
> But the technical debt here means that we really should consider
> improving the AioContext API for 11.0 to allow for a notify function
> similar to what GSource provides.
>
> Key:
> [----] : patches are identical
> [####] : number of functional differences between upstream/downstream patch
> [down] : patch is downstream-only
> The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
>
> 001/13:[----] [--] 'iotests: Drop execute permissions on vvfat.out'
> 002/13:[----] [--] 'qio: Add trace points to net_listener'
> 003/13:[----] [--] 'qio: Unwatch before notify in QIONetListener'
> 004/13:[----] [--] 'qio: Remember context of qio_net_listener_set_client_func_full'
> 005/13:[down] 'qio: Protect NetListener callback with mutex'
> 006/13:[----] [-C] 'qio: Minor optimization when callback function is unchanged'
> 007/13:[0042] [FC] 'qio: Factor out helpers qio_net_listener_[un]watch'
> 008/13:[down] 'chardev: Reuse channel's cached local address'
> 009/13:[0053] [FC] 'qio: Provide accessor around QIONetListener->sioc'
> 010/13:[0013] [FC] 'qio: Prepare NetListener to use AioContext'
> 011/13:[0041] [FC] 'qio: Add QIONetListener API for using AioContext'
> 012/13:[----] [--] 'nbd: Avoid deadlock in client connecting to same-process server'
> 013/13:[----] [--] 'iotests: Add coverage of recent NBD qio deadlock fix'
>
> Eric Blake (13):
> iotests: Drop execute permissions on vvfat.out
> qio: Add trace points to net_listener
> qio: Unwatch before notify in QIONetListener
> qio: Remember context of qio_net_listener_set_client_func_full
> qio: Protect NetListener callback with mutex
> qio: Minor optimization when callback function is unchanged
> qio: Factor out helpers qio_net_listener_[un]watch
> chardev: Reuse channel's cached local address
> qio: Provide accessor around QIONetListener->sioc
> qio: Prepare NetListener to use AioContext
> qio: Add QIONetListener API for using AioContext
> nbd: Avoid deadlock in client connecting to same-process server
> iotests: Add coverage of recent NBD qio deadlock fix
>
> include/io/channel-socket.h | 2 +-
> include/io/net-listener.h | 71 ++++-
> blockdev-nbd.c | 4 +-
> chardev/char-socket.c | 2 +-
> io/net-listener.c | 300 +++++++++++++-----
> migration/socket.c | 4 +-
> ui/vnc.c | 34 +-
> io/trace-events | 5 +
> tests/qemu-iotests/tests/nbd-in-qcow2-chain | 94 ++++++
> .../qemu-iotests/tests/nbd-in-qcow2-chain.out | 75 +++++
> tests/qemu-iotests/tests/vvfat.out | 0
> 11 files changed, 498 insertions(+), 93 deletions(-)
> create mode 100755 tests/qemu-iotests/tests/nbd-in-qcow2-chain
> create mode 100644 tests/qemu-iotests/tests/nbd-in-qcow2-chain.out
> mode change 100755 => 100644 tests/qemu-iotests/tests/vvfat.out
>
> --
> 2.51.1
>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2025-11-13 9:07 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-13 1:11 [PATCH v3 for-10.2 00/13] Fix deadlock with bdrv_open of self-served NBD Eric Blake
2025-11-13 1:11 ` [PATCH v3 01/13] iotests: Drop execute permissions on vvfat.out Eric Blake
2025-11-13 1:11 ` [PATCH v3 02/13] qio: Add trace points to net_listener Eric Blake
2025-11-13 1:11 ` [PATCH v3 03/13] qio: Unwatch before notify in QIONetListener Eric Blake
2025-11-13 1:11 ` [PATCH v3 04/13] qio: Remember context of qio_net_listener_set_client_func_full Eric Blake
2025-11-13 1:11 ` [PATCH v3 05/13] qio: Protect NetListener callback with mutex Eric Blake
2025-11-13 1:11 ` [PATCH v3 06/13] qio: Minor optimization when callback function is unchanged Eric Blake
2025-11-13 1:11 ` [PATCH v3 07/13] qio: Factor out helpers qio_net_listener_[un]watch Eric Blake
2025-11-13 1:11 ` [PATCH v3 08/13] chardev: Reuse channel's cached local address Eric Blake
2025-11-13 1:11 ` [PATCH v3 09/13] qio: Provide accessor around QIONetListener->sioc Eric Blake
2025-11-13 1:11 ` [PATCH v3 10/13] qio: Prepare NetListener to use AioContext Eric Blake
2025-11-13 1:11 ` [PATCH v3 11/13] qio: Add QIONetListener API for using AioContext Eric Blake
2025-11-13 1:11 ` [PATCH v3 12/13] nbd: Avoid deadlock in client connecting to same-process server Eric Blake
2025-11-13 1:11 ` [PATCH v3 13/13] iotests: Add coverage of recent NBD qio deadlock fix Eric Blake
2025-11-13 9:07 ` Daniel P. Berrangé [this message]
2025-11-13 13:36 ` [PATCH v3 for-10.2 00/13] Fix deadlock with bdrv_open of self-served NBD 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=aRWfwmWz2LfgMKrs@redhat.com \
--to=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@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).