qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, stefanha@redhat.com, qemu-devel@nongnu.org
Subject: [PULL 00/33] Block layer patches
Date: Thu, 21 Dec 2023 22:23:05 +0100	[thread overview]
Message-ID: <20231221212339.164439-1-kwolf@redhat.com> (raw)

The following changes since commit 191710c221f65b1542f6ea7fa4d30dde6e134fd7:

  Merge tag 'pull-request-2023-12-20' of https://gitlab.com/thuth/qemu into staging (2023-12-20 09:40:16 -0500)

are available in the Git repository at:

  https://repo.or.cz/qemu/kevin.git tags/for-upstream

for you to fetch changes up to ec25ed82df474caea009df2ef948bfed4e6d81fd:

  virtio-blk: add iothread-vq-mapping parameter (2023-12-21 22:00:38 +0100)

----------------------------------------------------------------
Block layer patches

- virtio-blk: Multiqueue support (configurable iothread per queue)
- Made NBD export and hw/scsi thread-safe without AioContext lock
- Fix crash when loading snapshot on inactive node

----------------------------------------------------------------
Kevin Wolf (3):
      block: Fix crash when loading snapshot on inactive node
      vl: Improve error message for conflicting -incoming and -loadvm
      iotests: Basic tests for internal snapshots

Stefan Hajnoczi (30):
      nbd/server: avoid per-NBDRequest nbd_client_get/put()
      nbd/server: only traverse NBDExport->clients from main loop thread
      nbd/server: introduce NBDClient->lock to protect fields
      block/file-posix: set up Linux AIO and io_uring in the current thread
      virtio-blk: add lock to protect s->rq
      virtio-blk: don't lock AioContext in the completion code path
      virtio-blk: don't lock AioContext in the submission code path
      scsi: only access SCSIDevice->requests from one thread
      virtio-scsi: don't lock AioContext around virtio_queue_aio_attach_host_notifier()
      scsi: don't lock AioContext in I/O code path
      dma-helpers: don't lock AioContext in dma_blk_cb()
      virtio-scsi: replace AioContext lock with tmf_bh_lock
      scsi: assert that callbacks run in the correct AioContext
      tests: remove aio_context_acquire() tests
      aio: make aio_context_acquire()/aio_context_release() a no-op
      graph-lock: remove AioContext locking
      block: remove AioContext locking
      block: remove bdrv_co_lock()
      scsi: remove AioContext locking
      aio-wait: draw equivalence between AIO_WAIT_WHILE() and AIO_WAIT_WHILE_UNLOCKED()
      aio: remove aio_context_acquire()/aio_context_release() API
      docs: remove AioContext lock from IOThread docs
      scsi: remove outdated AioContext lock comment
      job: remove outdated AioContext locking comments
      block: remove outdated AioContext locking comments
      block-coroutine-wrapper: use qemu_get_current_aio_context()
      string-output-visitor: show structs as "<omitted>"
      qdev-properties: alias all object class properties
      qdev: add IOThreadVirtQueueMappingList property type
      virtio-blk: add iothread-vq-mapping parameter

 qapi/virtio.json                                   |  29 ++
 docs/devel/multiple-iothreads.txt                  |  47 +--
 hw/block/dataplane/virtio-blk.h                    |   3 +
 include/block/aio-wait.h                           |  16 +-
 include/block/aio.h                                |  17 -
 include/block/block-common.h                       |   3 -
 include/block/block-global-state.h                 |  23 +-
 include/block/block-io.h                           |  12 +-
 include/block/block_int-common.h                   |   2 -
 include/block/graph-lock.h                         |  21 +-
 include/block/snapshot.h                           |   2 -
 include/hw/qdev-properties-system.h                |   5 +
 include/hw/qdev-properties.h                       |   4 +-
 include/hw/scsi/scsi.h                             |   7 +-
 include/hw/virtio/virtio-blk.h                     |   5 +-
 include/hw/virtio/virtio-scsi.h                    |  17 +-
 include/qapi/string-output-visitor.h               |   6 +-
 include/qemu/job.h                                 |  20 --
 block.c                                            | 363 +++------------------
 block/backup.c                                     |   4 +-
 block/blklogwrites.c                               |   8 +-
 block/blkverify.c                                  |   4 +-
 block/block-backend.c                              |  33 +-
 block/commit.c                                     |  16 +-
 block/copy-before-write.c                          |  22 +-
 block/export/export.c                              |  22 +-
 block/export/vhost-user-blk-server.c               |   4 -
 block/file-posix.c                                 |  99 +++---
 block/graph-lock.c                                 |  44 +--
 block/io.c                                         |  45 +--
 block/mirror.c                                     |  41 +--
 block/monitor/bitmap-qmp-cmds.c                    |  20 +-
 block/monitor/block-hmp-cmds.c                     |  29 --
 block/qapi-sysemu.c                                |  27 +-
 block/qapi.c                                       |  18 +-
 block/qcow2.c                                      |   4 +-
 block/quorum.c                                     |   8 +-
 block/raw-format.c                                 |   5 -
 block/replication.c                                |  72 +---
 block/snapshot.c                                   |  30 +-
 block/stream.c                                     |  12 +-
 block/vmdk.c                                       |  20 +-
 block/write-threshold.c                            |   6 -
 blockdev.c                                         | 320 ++++--------------
 blockjob.c                                         |  30 +-
 hw/block/dataplane/virtio-blk.c                    | 165 +++++++---
 hw/block/dataplane/xen-block.c                     |  17 +-
 hw/block/virtio-blk.c                              | 209 +++++++-----
 hw/core/qdev-properties-system.c                   |  55 +++-
 hw/core/qdev-properties.c                          |  18 +-
 hw/scsi/scsi-bus.c                                 | 183 +++++++----
 hw/scsi/scsi-disk.c                                |  67 +---
 hw/scsi/scsi-generic.c                             |  20 +-
 hw/scsi/virtio-scsi-dataplane.c                    |   8 +-
 hw/scsi/virtio-scsi.c                              |  80 ++---
 job.c                                              |  16 -
 migration/block.c                                  |  34 +-
 migration/migration-hmp-cmds.c                     |   3 -
 migration/savevm.c                                 |  22 --
 nbd/server.c                                       | 208 +++++++++---
 net/colo-compare.c                                 |   2 -
 qapi/string-output-visitor.c                       |  16 +
 qemu-img.c                                         |   4 -
 qemu-io.c                                          |  10 +-
 qemu-nbd.c                                         |   2 -
 replay/replay-debugging.c                          |   4 -
 system/dma-helpers.c                               |  10 +-
 system/vl.c                                        |   4 +
 tests/unit/test-aio.c                              |  67 +---
 tests/unit/test-bdrv-drain.c                       |  91 ++----
 tests/unit/test-bdrv-graph-mod.c                   |  26 +-
 tests/unit/test-block-iothread.c                   |  31 --
 tests/unit/test-blockjob.c                         | 137 --------
 tests/unit/test-replication.c                      |  11 -
 util/async.c                                       |  14 -
 util/vhost-user-server.c                           |   3 -
 scripts/block-coroutine-wrapper.py                 |  13 +-
 tests/qemu-iotests/202                             |   2 +-
 tests/qemu-iotests/203                             |   3 +-
 tests/qemu-iotests/tests/qcow2-internal-snapshots  | 170 ++++++++++
 .../tests/qcow2-internal-snapshots.out             | 107 ++++++
 tests/tsan/suppressions.tsan                       |   1 -
 82 files changed, 1337 insertions(+), 2041 deletions(-)
 create mode 100755 tests/qemu-iotests/tests/qcow2-internal-snapshots
 create mode 100644 tests/qemu-iotests/tests/qcow2-internal-snapshots.out



             reply	other threads:[~2023-12-21 21:26 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-21 21:23 Kevin Wolf [this message]
2023-12-21 21:23 ` [PULL 01/33] nbd/server: avoid per-NBDRequest nbd_client_get/put() Kevin Wolf
2023-12-21 21:23 ` [PULL 02/33] nbd/server: only traverse NBDExport->clients from main loop thread Kevin Wolf
2023-12-21 21:23 ` [PULL 03/33] nbd/server: introduce NBDClient->lock to protect fields Kevin Wolf
2023-12-21 21:23 ` [PULL 04/33] block/file-posix: set up Linux AIO and io_uring in the current thread Kevin Wolf
2023-12-21 21:23 ` [PULL 05/33] virtio-blk: add lock to protect s->rq Kevin Wolf
2023-12-21 21:23 ` [PULL 06/33] virtio-blk: don't lock AioContext in the completion code path Kevin Wolf
2023-12-21 21:23 ` [PULL 07/33] virtio-blk: don't lock AioContext in the submission " Kevin Wolf
2023-12-21 21:23 ` [PULL 08/33] block: Fix crash when loading snapshot on inactive node Kevin Wolf
2023-12-21 21:23 ` [PULL 09/33] vl: Improve error message for conflicting -incoming and -loadvm Kevin Wolf
2023-12-21 21:23 ` [PULL 10/33] iotests: Basic tests for internal snapshots Kevin Wolf
2023-12-21 21:23 ` [PULL 11/33] scsi: only access SCSIDevice->requests from one thread Kevin Wolf
2024-01-23 16:40   ` Hanna Czenczek
2024-01-23 17:10     ` Kevin Wolf
2024-01-23 17:23       ` Hanna Czenczek
2024-01-24 12:12       ` Hanna Czenczek
2024-01-24 21:53         ` Stefan Hajnoczi
2024-01-25  9:06           ` Hanna Czenczek
2024-01-25 13:25             ` Stefan Hajnoczi
2024-01-25 17:32       ` Hanna Czenczek
2024-01-26 13:18         ` Kevin Wolf
2024-01-26 15:24           ` Hanna Czenczek
2024-01-31 20:35             ` Stefan Hajnoczi
2024-02-01 14:10               ` Hanna Czenczek
2024-02-01 14:28                 ` Stefan Hajnoczi
2024-02-01 15:25                   ` Hanna Czenczek
2024-02-01 15:49                     ` Hanna Czenczek
2024-02-02 12:32                     ` Hanna Czenczek
2024-02-06 19:32                       ` Stefan Hajnoczi
2024-01-29 16:30       ` Hanna Czenczek
2024-01-31 10:17         ` Kevin Wolf
2024-02-01  9:43           ` Hanna Czenczek
2024-02-01 10:21             ` Kevin Wolf
2024-02-01 10:35               ` Hanna Czenczek
2024-01-23 17:21     ` Hanna Czenczek
2023-12-21 21:23 ` [PULL 12/33] virtio-scsi: don't lock AioContext around virtio_queue_aio_attach_host_notifier() Kevin Wolf
2023-12-21 21:23 ` [PULL 13/33] scsi: don't lock AioContext in I/O code path Kevin Wolf
2023-12-21 21:23 ` [PULL 14/33] dma-helpers: don't lock AioContext in dma_blk_cb() Kevin Wolf
2023-12-21 21:23 ` [PULL 15/33] virtio-scsi: replace AioContext lock with tmf_bh_lock Kevin Wolf
2023-12-21 21:23 ` [PULL 16/33] scsi: assert that callbacks run in the correct AioContext Kevin Wolf
2023-12-21 21:23 ` [PULL 17/33] tests: remove aio_context_acquire() tests Kevin Wolf
2023-12-21 21:23 ` [PULL 18/33] aio: make aio_context_acquire()/aio_context_release() a no-op Kevin Wolf
2023-12-21 21:23 ` [PULL 19/33] graph-lock: remove AioContext locking Kevin Wolf
2023-12-21 21:23 ` [PULL 20/33] block: " Kevin Wolf
2023-12-21 21:23 ` [PULL 21/33] block: remove bdrv_co_lock() Kevin Wolf
2023-12-21 21:23 ` [PULL 22/33] scsi: remove AioContext locking Kevin Wolf
2023-12-21 21:23 ` [PULL 23/33] aio-wait: draw equivalence between AIO_WAIT_WHILE() and AIO_WAIT_WHILE_UNLOCKED() Kevin Wolf
2023-12-21 21:23 ` [PULL 24/33] aio: remove aio_context_acquire()/aio_context_release() API Kevin Wolf
2023-12-21 21:23 ` [PULL 25/33] docs: remove AioContext lock from IOThread docs Kevin Wolf
2023-12-21 21:23 ` [PULL 26/33] scsi: remove outdated AioContext lock comment Kevin Wolf
2023-12-21 21:23 ` [PULL 27/33] job: remove outdated AioContext locking comments Kevin Wolf
2023-12-21 21:23 ` [PULL 28/33] block: " Kevin Wolf
2023-12-21 21:23 ` [PULL 29/33] block-coroutine-wrapper: use qemu_get_current_aio_context() Kevin Wolf
2023-12-21 21:23 ` [PULL 30/33] string-output-visitor: show structs as "<omitted>" Kevin Wolf
2023-12-21 21:23 ` [PULL 31/33] qdev-properties: alias all object class properties Kevin Wolf
2023-12-21 21:23 ` [PULL 32/33] qdev: add IOThreadVirtQueueMappingList property type Kevin Wolf
2023-12-21 21:23 ` [PULL 33/33] virtio-blk: add iothread-vq-mapping parameter Kevin Wolf

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=20231221212339.164439-1-kwolf@redhat.com \
    --to=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@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).