qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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 :|



  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).