[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 00/50] Block layer patches
From: |
Kevin Wolf |
Subject: |
[PULL 00/50] Block layer patches |
Date: |
Fri, 4 Mar 2022 17:46:21 +0100 |
The following changes since commit 6629bf78aac7e53f83fd0bcbdbe322e2302dfd1f:
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20220302'
into staging (2022-03-03 14:46:48 +0000)
are available in the Git repository at:
https://gitlab.com/kmwolf/qemu.git tags/for-upstream
for you to fetch changes up to a5df6d1db7db37636c8624bf4a9df9da645853aa:
block/amend: Keep strong reference to BDS (2022-03-04 17:15:33 +0100)
----------------------------------------------------------------
Block layer patches
- qemu-storage-daemon: Add --daemonize
- Fix x-blockdev-amend and block node activation code which incorrectly
executed code in the iothread that must run in the main thread.
- Add macros for coroutine-safe TLS variables (required for correctness
with LTO)
- Fix crashes with concurrent I/O and bdrv_refresh_limits()
- Split block APIs in global state and I/O
- iotests: Don't refuse to run at all without GNU sed, just skip tests
that need it
----------------------------------------------------------------
Emanuele Giuseppe Esposito (36):
crypto: perform permission checks under BQL
crypto: distinguish between main loop and I/O in
block_crypto_amend_options_generic_luks
block: introduce bdrv_activate
block: rename bdrv_invalidate_cache_all, blk_invalidate_cache and
test_sync_op_invalidate_cache
block: move BQL logic of bdrv_co_invalidate_cache in bdrv_activate
main-loop.h: introduce qemu_in_main_thread()
main loop: macros to mark GS and I/O functions
include/block/block: split header into I/O and global state API
assertions for block global state API
IO_CODE and IO_OR_GS_CODE for block I/O API
block/export/fuse.c: allow writable exports to take RESIZE permission
include/sysemu/block-backend: split header into I/O and global state (GS)
API
block/block-backend.c: assertions for block-backend
IO_CODE and IO_OR_GS_CODE for block-backend I/O API
block.c: assertions to the block layer permissions API
include/block/block_int: split header into I/O and global state API
assertions for block_int global state API
IO_CODE and IO_OR_GS_CODE for block_int I/O API
block: introduce assert_bdrv_graph_writable
include/block/blockjob_int.h: split header into I/O and GS API
GS and IO CODE macros for blockjob_int.h
block.c: add assertions to static functions
include/block/blockjob.h: global state API
assertions for blockjob.h global state API
include/sysemu/blockdev.h: global state API
assertions for blockdev.h global state API
include/block/snapshot: global state API + assertions
block/copy-before-write.h: global state API + assertions
block/coroutines: I/O and "I/O or GS" API
block_int-common.h: split function pointers in BlockDriver
block_int-common.h: assertions in the callers of BlockDriver function
pointers
block_int-common.h: split function pointers in BdrvChildClass
block_int-common.h: assertions in the callers of BdrvChildClass function
pointers
block-backend-common.h: split function pointers in BlockDevOps
job.h: split function pointers in JobDriver
job.h: assertions in the callers of JobDriver function pointers
Hanna Reitz (9):
os-posix: Add os_set_daemonize()
qsd: Add pre-init argument parsing pass
qsd: Add --daemonize
iotests/185: Add post-READY quit tests
block: Make bdrv_refresh_limits() non-recursive
iotests: Allow using QMP with the QSD
iotests/graph-changes-while-io: New test
block/amend: Always call .bdrv_amend_clean()
block/amend: Keep strong reference to BDS
Stefan Hajnoczi (4):
tls: add macros for coroutine-safe TLS variables
util/async: replace __thread with QEMU TLS macros
rcu: use coroutine TLS macros
cpus: use coroutine TLS macros for iothread_locked
Thomas Huth (1):
tests/qemu-iotests: Rework the checks and spots using GNU sed
docs/tools/qemu-storage-daemon.rst | 7 +
block/copy-before-write.h | 7 +
block/coroutines.h | 81 +-
include/block/block-common.h | 418 ++++++
include/block/block-global-state.h | 253 ++++
include/block/block-io.h | 368 +++++
include/block/block.h | 878 +-----------
include/block/block_int-common.h | 1222 ++++++++++++++++
include/block/block_int-global-state.h | 329 +++++
include/block/block_int-io.h | 185 +++
include/block/block_int.h | 1475 +-------------------
include/block/blockjob.h | 29 +-
include/block/blockjob_int.h | 28 +
include/block/snapshot.h | 13 +-
include/qemu/coroutine-tls.h | 165 +++
include/qemu/job.h | 22 +
include/qemu/main-loop.h | 42 +
include/qemu/rcu.h | 7 +-
include/sysemu/block-backend-common.h | 102 ++
include/sysemu/block-backend-global-state.h | 116 ++
include/sysemu/block-backend-io.h | 161 +++
include/sysemu/block-backend.h | 269 +---
include/sysemu/blockdev.h | 13 +-
include/sysemu/os-posix.h | 1 +
include/sysemu/os-win32.h | 8 +
block.c | 321 ++++-
block/amend.c | 28 +
block/backup.c | 1 +
block/block-backend.c | 166 ++-
block/commit.c | 4 +
block/copy-before-write.c | 2 +
block/create.c | 2 +
block/crypto.c | 68 +-
block/dirty-bitmap.c | 5 +
block/export/export.c | 2 +-
block/export/fuse.c | 25 +-
block/io.c | 75 +-
block/mirror.c | 4 +
block/monitor/bitmap-qmp-cmds.c | 6 +
block/nbd.c | 1 +
block/parallels.c | 2 +-
block/snapshot.c | 28 +
block/stream.c | 2 +
blockdev.c | 29 +
blockjob.c | 16 +
hw/block/pflash_cfi01.c | 2 +-
hw/nvram/spapr_nvram.c | 2 +-
job.c | 10 +
migration/block.c | 2 +-
migration/migration.c | 14 +-
migration/savevm.c | 8 +-
monitor/qmp-cmds.c | 2 +-
os-posix.c | 6 +
softmmu/cpus.c | 14 +-
softmmu/qdev-monitor.c | 2 +
storage-daemon/qemu-storage-daemon.c | 58 +-
stubs/iothread-lock.c | 5 +
tests/unit/rcutorture.c | 10 +-
tests/unit/test-block-iothread.c | 8 +-
tests/unit/test-rcu-list.c | 4 +-
util/async.c | 12 +-
util/rcu.c | 10 +-
tests/qemu-iotests/iotests.py | 32 +-
block/meson.build | 7 +-
tests/check-block.sh | 12 -
tests/qemu-iotests/185 | 190 ++-
tests/qemu-iotests/185.out | 48 +
tests/qemu-iotests/271 | 2 +-
tests/qemu-iotests/296 | 8 +-
tests/qemu-iotests/296.out | 17 +-
tests/qemu-iotests/common.filter | 65 +-
tests/qemu-iotests/common.rc | 45 +-
tests/qemu-iotests/tests/graph-changes-while-io | 91 ++
.../qemu-iotests/tests/graph-changes-while-io.out | 5 +
74 files changed, 4854 insertions(+), 2823 deletions(-)
create mode 100644 include/block/block-common.h
create mode 100644 include/block/block-global-state.h
create mode 100644 include/block/block-io.h
create mode 100644 include/block/block_int-common.h
create mode 100644 include/block/block_int-global-state.h
create mode 100644 include/block/block_int-io.h
create mode 100644 include/qemu/coroutine-tls.h
create mode 100644 include/sysemu/block-backend-common.h
create mode 100644 include/sysemu/block-backend-global-state.h
create mode 100644 include/sysemu/block-backend-io.h
create mode 100755 tests/qemu-iotests/tests/graph-changes-while-io
create mode 100644 tests/qemu-iotests/tests/graph-changes-while-io.out
- [PULL 00/50] Block layer patches,
Kevin Wolf <=
- [PULL 01/50] crypto: perform permission checks under BQL, Kevin Wolf, 2022/03/04
- [PULL 04/50] block: rename bdrv_invalidate_cache_all, blk_invalidate_cache and test_sync_op_invalidate_cache, Kevin Wolf, 2022/03/04
- [PULL 05/50] block: move BQL logic of bdrv_co_invalidate_cache in bdrv_activate, Kevin Wolf, 2022/03/04
- [PULL 06/50] tls: add macros for coroutine-safe TLS variables, Kevin Wolf, 2022/03/04
- [PULL 08/50] rcu: use coroutine TLS macros, Kevin Wolf, 2022/03/04
- [PULL 09/50] cpus: use coroutine TLS macros for iothread_locked, Kevin Wolf, 2022/03/04
- [PULL 10/50] os-posix: Add os_set_daemonize(), Kevin Wolf, 2022/03/04
- [PULL 12/50] qsd: Add --daemonize, Kevin Wolf, 2022/03/04
- [PULL 11/50] qsd: Add pre-init argument parsing pass, Kevin Wolf, 2022/03/04
- [PULL 07/50] util/async: replace __thread with QEMU TLS macros, Kevin Wolf, 2022/03/04