qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
  • [parent not found: <20251112224032.864420-22-eblake@redhat.com>]
  • [parent not found: <20251112224032.864420-23-eblake@redhat.com>]
  • [parent not found: <20251112224032.864420-24-eblake@redhat.com>]
  • [parent not found: <20251112224032.864420-26-eblake@redhat.com>]
  • * [PATCH v3 for-10.2 00/13] Fix deadlock with bdrv_open of self-served NBD
    @ 2025-11-13  1:11 Eric Blake
      2025-11-13  1:11 ` [PATCH v3 07/13] qio: Factor out helpers qio_net_listener_[un]watch Eric Blake
      0 siblings, 1 reply; 6+ messages in thread
    From: Eric Blake @ 2025-11-13  1:11 UTC (permalink / raw)
      To: qemu-devel; +Cc: qemu-block, kwolf, berrange
    
    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
    
    
    
    ^ permalink raw reply	[flat|nested] 6+ messages in thread

    end of thread, other threads:[~2025-11-13  9:06 UTC | newest]
    
    Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <20251112224032.864420-15-eblake@redhat.com>
         [not found] ` <20251112224032.864420-20-eblake@redhat.com>
    2025-11-13  8:56   ` [PATCH v3 05/13] qio: Protect NetListener callback with mutex Daniel P. Berrangé
         [not found] ` <20251112224032.864420-22-eblake@redhat.com>
    2025-11-13  9:01   ` [PATCH v3 07/13] qio: Factor out helpers qio_net_listener_[un]watch Daniel P. Berrangé
         [not found] ` <20251112224032.864420-23-eblake@redhat.com>
    2025-11-13  9:01   ` [PATCH v3 08/13] chardev: Reuse channel's cached local address Daniel P. Berrangé
         [not found] ` <20251112224032.864420-24-eblake@redhat.com>
    2025-11-13  9:03   ` [PATCH v3 09/13] qio: Provide accessor around QIONetListener->sioc Daniel P. Berrangé
         [not found] ` <20251112224032.864420-26-eblake@redhat.com>
    2025-11-13  9:05   ` [PATCH v3 11/13] qio: Add QIONetListener API for using AioContext Daniel P. Berrangé
    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 07/13] qio: Factor out helpers qio_net_listener_[un]watch Eric Blake
    

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