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