[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 00/33] Block layer patches
From: |
Kevin Wolf |
Subject: |
[PULL 00/33] Block layer patches |
Date: |
Thu, 21 Dec 2023 22:23:05 +0100 |
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
- [PULL 00/33] Block layer patches,
Kevin Wolf <=
- [PULL 01/33] nbd/server: avoid per-NBDRequest nbd_client_get/put(), Kevin Wolf, 2023/12/21
- [PULL 02/33] nbd/server: only traverse NBDExport->clients from main loop thread, Kevin Wolf, 2023/12/21
- [PULL 03/33] nbd/server: introduce NBDClient->lock to protect fields, Kevin Wolf, 2023/12/21
- [PULL 04/33] block/file-posix: set up Linux AIO and io_uring in the current thread, Kevin Wolf, 2023/12/21
- [PULL 05/33] virtio-blk: add lock to protect s->rq, Kevin Wolf, 2023/12/21
- [PULL 08/33] block: Fix crash when loading snapshot on inactive node, Kevin Wolf, 2023/12/21
- [PULL 06/33] virtio-blk: don't lock AioContext in the completion code path, Kevin Wolf, 2023/12/21
- [PULL 07/33] virtio-blk: don't lock AioContext in the submission code path, Kevin Wolf, 2023/12/21
- [PULL 09/33] vl: Improve error message for conflicting -incoming and -loadvm, Kevin Wolf, 2023/12/21
- [PULL 10/33] iotests: Basic tests for internal snapshots, Kevin Wolf, 2023/12/21