All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 00/50] Block layer patches
@ 2022-03-04 16:46 Kevin Wolf
  2022-03-04 16:46 ` [PULL 01/50] crypto: perform permission checks under BQL Kevin Wolf
                   ` (50 more replies)
  0 siblings, 51 replies; 60+ messages in thread
From: Kevin Wolf @ 2022-03-04 16:46 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

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



^ permalink raw reply	[flat|nested] 60+ messages in thread
* [PULL 00/50] Block layer patches
@ 2022-10-07 10:47 Kevin Wolf
  2022-10-12 21:25 ` Stefan Hajnoczi
  0 siblings, 1 reply; 60+ messages in thread
From: Kevin Wolf @ 2022-10-07 10:47 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, stefanha, qemu-devel

The following changes since commit f1d33f55c47dfdaf8daacd618588ad3ae4c452d1:

  Merge tag 'pull-testing-gdbstub-plugins-gitdm-061022-3' of https://github.com/stsquad/qemu into staging (2022-10-06 07:11:56 -0400)

are available in the Git repository at:

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

for you to fetch changes up to a7ca2eb488ff149c898f43abe103f8bd8e3ca3c4:

  file-posix: Remove unused s->discard_zeroes (2022-10-07 12:11:41 +0200)

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

- job: replace AioContext lock with job_mutex
- Fixes to make coroutine_fn annotations more accurate
- QAPI schema: Fix incorrect example
- Code cleanup

----------------------------------------------------------------
Alberto Faria (1):
      coroutine: Drop coroutine_fn annotation from qemu_coroutine_self()

Emanuele Giuseppe Esposito (20):
      job.c: make job_mutex and job_lock/unlock() public
      job.h: categorize fields in struct Job
      job.c: API functions not used outside should be static
      aio-wait.h: introduce AIO_WAIT_WHILE_UNLOCKED
      job.c: add job_lock/unlock while keeping job.h intact
      job: move and update comments from blockjob.c
      blockjob: introduce block_job _locked() APIs
      jobs: add job lock in find_* functions
      jobs: use job locks also in the unit tests
      block/mirror.c: use of job helpers in drivers
      jobs: group together API calls under the same job lock
      jobs: protect job.aio_context with BQL and job_mutex
      blockjob.h: categorize fields in struct BlockJob
      blockjob: rename notifier callbacks as _locked
      blockjob: protect iostatus field in BlockJob struct
      job.h: categorize JobDriver callbacks that need the AioContext lock
      job.c: enable job lock/unlock and remove Aiocontext locks
      block_job_query: remove atomic read
      blockjob: remove unused functions
      job: remove unused functions

Kevin Wolf (2):
      quorum: Remove unnecessary forward declaration
      file-posix: Remove unused s->discard_zeroes

Marc-André Lureau (3):
      9p: add missing coroutine_fn annotations
      migration: add missing coroutine_fn annotations
      test-coroutine: add missing coroutine_fn annotations

Markus Armbruster (1):
      Revert "qapi: fix examples of blockdev-add with qcow2"

Paolo Bonzini (23):
      block/nvme: separate nvme_get_free_req cases for coroutine/non-coroutine context
      block: add missing coroutine_fn annotations
      qcow2: remove incorrect coroutine_fn annotations
      nbd: remove incorrect coroutine_fn annotations
      coroutine: remove incorrect coroutine_fn annotations
      blkverify: add missing coroutine_fn annotations
      file-posix: add missing coroutine_fn annotations
      iscsi: add missing coroutine_fn annotations
      nbd: add missing coroutine_fn annotations
      nfs: add missing coroutine_fn annotations
      nvme: add missing coroutine_fn annotations
      parallels: add missing coroutine_fn annotations
      qcow2: add missing coroutine_fn annotations
      copy-before-write: add missing coroutine_fn annotations
      curl: add missing coroutine_fn annotations
      qed: add missing coroutine_fn annotations
      quorum: add missing coroutine_fn annotations
      throttle: add missing coroutine_fn annotations
      vmdk: add missing coroutine_fn annotations
      job: add missing coroutine_fn annotations
      coroutine-lock: add missing coroutine_fn annotations
      raw-format: add missing coroutine_fn annotations
      job: detect change of aiocontext within job coroutine

 qapi/block-core.json             |  10 +-
 block/qcow2.h                    |  19 +-
 hw/9pfs/9p.h                     |   9 +-
 include/block/aio-wait.h         |  17 +-
 include/block/blockjob.h         |  59 +++-
 include/block/nbd.h              |   2 +-
 include/qemu/coroutine.h         |   4 +-
 include/qemu/job.h               | 306 +++++++++++++-----
 block.c                          |  24 +-
 block/blkverify.c                |   2 +-
 block/block-backend.c            |  10 +-
 block/copy-before-write.c        |   9 +-
 block/curl.c                     |   2 +-
 block/file-posix.c               |  11 +-
 block/io.c                       |  22 +-
 block/iscsi.c                    |   3 +-
 block/mirror.c                   |  19 +-
 block/nbd.c                      |  11 +-
 block/nfs.c                      |   2 +-
 block/nvme.c                     |  54 ++--
 block/parallels.c                |   5 +-
 block/qcow2-cluster.c            |  21 +-
 block/qcow2-refcount.c           |   6 +-
 block/qcow2.c                    |   5 +-
 block/qed.c                      |   4 +-
 block/quorum.c                   |  38 +--
 block/raw-format.c               |   3 +-
 block/replication.c              |   3 +
 block/throttle.c                 |   2 +-
 block/vmdk.c                     |  22 +-
 blockdev.c                       | 129 ++++----
 blockjob.c                       | 132 ++++----
 job-qmp.c                        |  92 +++---
 job.c                            | 674 +++++++++++++++++++++++++--------------
 migration/migration.c            |   3 +-
 monitor/qmp-cmds.c               |   7 +-
 qemu-img.c                       |  17 +-
 tests/unit/test-bdrv-drain.c     |  80 +++--
 tests/unit/test-block-iothread.c |   8 +-
 tests/unit/test-blockjob-txn.c   |  24 +-
 tests/unit/test-blockjob.c       | 136 ++++----
 tests/unit/test-coroutine.c      |   2 +-
 util/qemu-coroutine-lock.c       |  14 +-
 util/qemu-coroutine.c            |   2 +-
 44 files changed, 1237 insertions(+), 787 deletions(-)



^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2022-10-12 21:27 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-04 16:46 [PULL 00/50] Block layer patches Kevin Wolf
2022-03-04 16:46 ` [PULL 01/50] crypto: perform permission checks under BQL Kevin Wolf
2022-03-04 16:46 ` [PULL 02/50] crypto: distinguish between main loop and I/O in block_crypto_amend_options_generic_luks Kevin Wolf
2022-03-04 16:46 ` [PULL 03/50] block: introduce bdrv_activate Kevin Wolf
2022-03-04 16:46 ` [PULL 04/50] block: rename bdrv_invalidate_cache_all, blk_invalidate_cache and test_sync_op_invalidate_cache Kevin Wolf
2022-03-04 16:46 ` [PULL 05/50] block: move BQL logic of bdrv_co_invalidate_cache in bdrv_activate Kevin Wolf
2022-03-04 16:46 ` [PULL 06/50] tls: add macros for coroutine-safe TLS variables Kevin Wolf
2022-03-04 16:46 ` [PULL 07/50] util/async: replace __thread with QEMU TLS macros Kevin Wolf
2022-03-04 16:46 ` [PULL 08/50] rcu: use coroutine " Kevin Wolf
2022-03-04 16:46 ` [PULL 09/50] cpus: use coroutine TLS macros for iothread_locked Kevin Wolf
2022-03-04 16:46 ` [PULL 10/50] os-posix: Add os_set_daemonize() Kevin Wolf
2022-03-04 16:46 ` [PULL 11/50] qsd: Add pre-init argument parsing pass Kevin Wolf
2022-03-04 16:46 ` [PULL 12/50] qsd: Add --daemonize Kevin Wolf
2022-03-04 16:46 ` [PULL 13/50] iotests/185: Add post-READY quit tests Kevin Wolf
2022-03-04 16:46 ` [PULL 14/50] main-loop.h: introduce qemu_in_main_thread() Kevin Wolf
2022-03-04 16:46 ` [PULL 15/50] main loop: macros to mark GS and I/O functions Kevin Wolf
2022-03-04 16:46 ` [PULL 16/50] include/block/block: split header into I/O and global state API Kevin Wolf
2022-03-04 16:46 ` [PULL 17/50] assertions for block " Kevin Wolf
2022-03-04 16:46 ` [PULL 18/50] IO_CODE and IO_OR_GS_CODE for block I/O API Kevin Wolf
2022-03-04 16:46 ` [PULL 19/50] block/export/fuse.c: allow writable exports to take RESIZE permission Kevin Wolf
2022-03-04 16:46 ` [PULL 20/50] include/sysemu/block-backend: split header into I/O and global state (GS) API Kevin Wolf
2022-03-04 16:46 ` [PULL 21/50] block/block-backend.c: assertions for block-backend Kevin Wolf
2022-03-16 12:44   ` Philippe Mathieu-Daudé
2022-03-16 12:53     ` Philippe Mathieu-Daudé
2022-03-16 14:46       ` Emanuele Giuseppe Esposito
2022-03-16 15:25         ` Philippe Mathieu-Daudé
2022-03-16 16:02           ` Kevin Wolf
2022-03-16 12:54     ` Emanuele Giuseppe Esposito
2022-03-04 16:46 ` [PULL 22/50] IO_CODE and IO_OR_GS_CODE for block-backend I/O API Kevin Wolf
2022-03-04 16:46 ` [PULL 23/50] block.c: assertions to the block layer permissions API Kevin Wolf
2022-03-04 16:46 ` [PULL 24/50] include/block/block_int: split header into I/O and global state API Kevin Wolf
2022-03-04 16:46 ` [PULL 25/50] assertions for block_int " Kevin Wolf
2022-03-04 16:46 ` [PULL 26/50] IO_CODE and IO_OR_GS_CODE for block_int I/O API Kevin Wolf
2022-03-04 16:46 ` [PULL 27/50] block: introduce assert_bdrv_graph_writable Kevin Wolf
2022-03-04 16:46 ` [PULL 28/50] include/block/blockjob_int.h: split header into I/O and GS API Kevin Wolf
2022-03-04 16:46 ` [PULL 29/50] GS and IO CODE macros for blockjob_int.h Kevin Wolf
2022-03-04 16:46 ` [PULL 30/50] block.c: add assertions to static functions Kevin Wolf
2022-03-04 16:46 ` [PULL 31/50] include/block/blockjob.h: global state API Kevin Wolf
2022-03-04 16:46 ` [PULL 32/50] assertions for blockjob.h " Kevin Wolf
2022-03-04 16:46 ` [PULL 33/50] include/sysemu/blockdev.h: " Kevin Wolf
2022-03-04 16:46 ` [PULL 34/50] assertions for blockdev.h " Kevin Wolf
2022-03-04 16:46 ` [PULL 35/50] include/block/snapshot: global state API + assertions Kevin Wolf
2022-03-04 16:46 ` [PULL 36/50] block/copy-before-write.h: " Kevin Wolf
2022-03-04 16:46 ` [PULL 37/50] block/coroutines: I/O and "I/O or GS" API Kevin Wolf
2022-03-04 16:46 ` [PULL 38/50] block_int-common.h: split function pointers in BlockDriver Kevin Wolf
2022-03-04 16:47 ` [PULL 39/50] block_int-common.h: assertions in the callers of BlockDriver function pointers Kevin Wolf
2022-03-04 16:47 ` [PULL 40/50] block_int-common.h: split function pointers in BdrvChildClass Kevin Wolf
2022-03-04 16:47 ` [PULL 41/50] block_int-common.h: assertions in the callers of BdrvChildClass function pointers Kevin Wolf
2022-03-04 16:47 ` [PULL 42/50] block-backend-common.h: split function pointers in BlockDevOps Kevin Wolf
2022-03-04 16:47 ` [PULL 43/50] job.h: split function pointers in JobDriver Kevin Wolf
2022-03-04 16:47 ` [PULL 44/50] job.h: assertions in the callers of JobDriver function pointers Kevin Wolf
2022-03-04 16:47 ` [PULL 45/50] block: Make bdrv_refresh_limits() non-recursive Kevin Wolf
2022-03-04 16:47 ` [PULL 46/50] iotests: Allow using QMP with the QSD Kevin Wolf
2022-03-04 16:47 ` [PULL 47/50] iotests/graph-changes-while-io: New test Kevin Wolf
2022-03-04 16:47 ` [PULL 48/50] tests/qemu-iotests: Rework the checks and spots using GNU sed Kevin Wolf
2022-03-04 16:47 ` [PULL 49/50] block/amend: Always call .bdrv_amend_clean() Kevin Wolf
2022-03-04 16:47 ` [PULL 50/50] block/amend: Keep strong reference to BDS Kevin Wolf
2022-03-05 14:43 ` [PULL 00/50] Block layer patches Peter Maydell
2022-10-07 10:47 Kevin Wolf
2022-10-12 21:25 ` Stefan Hajnoczi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.