qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL 00/51] Block layer patches
@ 2020-05-15 12:44 Kevin Wolf
  2020-05-15 12:44 ` [PULL 01/51] iotests/109: Don't mirror with mismatched size Kevin Wolf
                   ` (52 more replies)
  0 siblings, 53 replies; 57+ messages in thread
From: Kevin Wolf @ 2020-05-15 12:44 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

The following changes since commit 013a18edbbc59cdad019100c7d03c0494642b74c:

  Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20200514' into staging (2020-05-14 16:17:55 +0100)

are available in the Git repository at:

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

for you to fetch changes up to 7d8f21a650e562270f5ed5341134c9c2c39dc5e8:

  iotests/030: Reduce run time by unthrottling job earlier (2020-05-15 14:12:34 +0200)

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

- Introduce real BdrvChildRole
- blk/bdrv_make_empty() functions instead of calling callbacks directly
- mirror: Make sure that source and target size match
- block-copy: Fix uninitialized variable
- block/replication: Avoid cancelling the job twice
- ahci: Log lost IRQs
- iotests: Run pylint and mypy in a testcase
- iotests: log messages from notrun()

----------------------------------------------------------------
John Snow (1):
      iotests: log messages from notrun()

Kevin Wolf (8):
      iotests/109: Don't mirror with mismatched size
      iotests/229: Use blkdebug to inject an error
      mirror: Make sure that source and target size match
      iotests: Mirror with different source/target size
      iotests: Fix incomplete type declarations
      iotests: Run pylint and mypy in a testcase
      replication: Avoid blk_make_empty() on read-only child
      iotests/030: Reduce run time by unthrottling job earlier

Lukas Straub (1):
      block/replication.c: Avoid cancelling the job twice

Max Reitz (38):
      block: Add bdrv_make_empty()
      block: Add blk_make_empty()
      block: Use blk_make_empty() after commits
      block: Use bdrv_make_empty() where possible
      block: Mark commit, mirror, blkreplay as filters
      block: Add BlockDriver.is_format
      block: Rename BdrvChildRole to BdrvChildClass
      block: Add BdrvChildRole and BdrvChildRoleBits
      block: Add BdrvChildRole to BdrvChild
      block: Pass BdrvChildRole to bdrv_child_perm()
      block: Pass BdrvChildRole to .inherit_options()
      block: Pass parent_is_format to .inherit_options()
      block: Rename bdrv_inherited_options()
      block: Add generic bdrv_inherited_options()
      block: Use bdrv_inherited_options()
      block: Unify bdrv_child_cb_attach()
      block: Unify bdrv_child_cb_detach()
      block: Add child_of_bds
      block: Distinguish paths in *_format_default_perms
      block: Pull out bdrv_default_perms_for_cow()
      block: Pull out bdrv_default_perms_for_storage()
      block: Relax *perms_for_storage for data children
      block: Add bdrv_default_perms()
      raw-format: Split raw_read_options()
      block: Switch child_format users to child_of_bds
      block: Drop child_format
      block: Make backing files child_of_bds children
      block: Drop child_backing
      block: Make format drivers use child_of_bds
      block: Make filter drivers use child_of_bds
      block: Use child_of_bds in remaining places
      tests: Use child_of_bds instead of child_file
      block: Use bdrv_default_perms()
      block: Make bdrv_filter_default_perms() static
      block: Drop bdrv_format_default_perms()
      block: Drop child_file
      block: Pass BdrvChildRole in remaining cases
      block: Drop @child_class from bdrv_child_perm()

Philippe Mathieu-Daudé (3):
      block/block-copy: Fix uninitialized variable in block_copy_task_entry
      block/block-copy: Simplify block_copy_do_copy()
      hw/ide/ahci: Log lost IRQs

 include/block/block.h            |  65 ++++-
 include/block/block_int.h        |  57 ++--
 include/sysemu/block-backend.h   |   2 +
 block.c                          | 601 ++++++++++++++++++++++++---------------
 block/backup-top.c               |  11 +-
 block/blkdebug.c                 |  10 +-
 block/blklogwrites.c             |  16 +-
 block/blkreplay.c                |   8 +-
 block/blkverify.c                |  10 +-
 block/block-backend.c            |  30 +-
 block/block-copy.c               |  14 +-
 block/bochs.c                    |   7 +-
 block/cloop.c                    |   7 +-
 block/commit.c                   |  20 +-
 block/copy-on-read.c             |   7 +-
 block/crypto.c                   |   8 +-
 block/dmg.c                      |   7 +-
 block/filter-compress.c          |   7 +-
 block/io.c                       |  22 +-
 block/mirror.c                   |  25 +-
 block/parallels.c                |   7 +-
 block/qcow.c                     |   7 +-
 block/qcow2.c                    |  20 +-
 block/qed.c                      |   7 +-
 block/quorum.c                   |   8 +-
 block/raw-format.c               | 128 +++++----
 block/replication.c              |  23 +-
 block/throttle.c                 |   7 +-
 block/vdi.c                      |   7 +-
 block/vhdx.c                     |   7 +-
 block/vmdk.c                     |  23 +-
 block/vpc.c                      |   7 +-
 block/vvfat.c                    |  17 +-
 blockjob.c                       |   7 +-
 hw/ide/ahci.c                    |   1 +
 qemu-img.c                       |  19 +-
 tests/test-bdrv-drain.c          |  72 +++--
 tests/test-bdrv-graph-mod.c      |  10 +-
 tests/test-block-iothread.c      |  17 +-
 tests/qemu-iotests/iotests.py    |  19 +-
 tests/qemu-iotests/030           |   6 +-
 tests/qemu-iotests/041           |  45 +++
 tests/qemu-iotests/041.out       |   4 +-
 tests/qemu-iotests/098.out       |   8 +-
 tests/qemu-iotests/109           |  10 +-
 tests/qemu-iotests/109.out       |  74 ++---
 tests/qemu-iotests/229           |  15 +-
 tests/qemu-iotests/229.out       |   6 +-
 tests/qemu-iotests/297           |  44 +++
 tests/qemu-iotests/297.out       |   3 +
 tests/qemu-iotests/common.filter |   5 +
 tests/qemu-iotests/group         |   1 +
 52 files changed, 995 insertions(+), 573 deletions(-)
 create mode 100755 tests/qemu-iotests/297
 create mode 100644 tests/qemu-iotests/297.out



^ permalink raw reply	[flat|nested] 57+ messages in thread
* [PULL 00/51] Block layer patches
@ 2022-12-14 13:44 Kevin Wolf
  2022-12-14 22:35 ` Peter Maydell
  0 siblings, 1 reply; 57+ messages in thread
From: Kevin Wolf @ 2022-12-14 13:44 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

The following changes since commit 5204b499a6cae4dfd9fe762d5e6e82224892383b:

  mailmap: Fix Stefan Weil author email (2022-12-13 15:56:57 -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 2ad19e5dc950d4b340894846b9e71c0b20f9a1cc:

  block: GRAPH_RDLOCK for functions only called by co_wrappers (2022-12-14 13:13:07 +0100)

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

- Code cleanups around block graph modification
- Simplify drain
- coroutine_fn correctness fixes, including splitting generated
  coroutine wrappers into co_wrapper (to be called only from
  non-coroutine context) and co_wrapper_mixed (both coroutine and
  non-coroutine context)
- Introduce a block graph rwlock

----------------------------------------------------------------
Emanuele Giuseppe Esposito (21):
      block-io: introduce coroutine_fn duplicates for bdrv_common_block_status_above callers
      block-copy: add coroutine_fn annotations
      nbd/server.c: add coroutine_fn annotations
      block-backend: replace bdrv_*_above with blk_*_above
      block/vmdk: add coroutine_fn annotations
      block: avoid duplicating filename string in bdrv_create
      block: distinguish between bdrv_create running in coroutine and not
      block: bdrv_create_file is a coroutine_fn
      block: rename generated_co_wrapper in co_wrapper_mixed
      block-coroutine-wrapper.py: introduce co_wrapper
      block-coroutine-wrapper.py: support functions without bs arg
      block-coroutine-wrapper.py: support also basic return types
      block: convert bdrv_create to co_wrapper
      block/dirty-bitmap: convert coroutine-only functions to co_wrapper
      graph-lock: Implement guard macros
      async: Register/unregister aiocontext in graph lock list
      block: wrlock in bdrv_replace_child_noperm
      block: remove unnecessary assert_bdrv_graph_writable()
      block: assert that graph read and writes are performed correctly
      block-coroutine-wrapper.py: introduce annotations that take the graph rdlock
      block: use co_wrapper_mixed_bdrv_rdlock in functions taking the rdlock

Kevin Wolf (25):
      qed: Don't yield in bdrv_qed_co_drain_begin()
      test-bdrv-drain: Don't yield in .bdrv_co_drained_begin/end()
      block: Revert .bdrv_drained_begin/end to non-coroutine_fn
      block: Remove drained_end_counter
      block: Inline bdrv_drain_invoke()
      block: Fix locking for bdrv_reopen_queue_child()
      block: Drain individual nodes during reopen
      block: Don't use subtree drains in bdrv_drop_intermediate()
      stream: Replace subtree drain with a single node drain
      block: Remove subtree drains
      block: Call drain callbacks only once
      block: Remove ignore_bds_parents parameter from drain_begin/end.
      block: Drop out of coroutine in bdrv_do_drained_begin_quiesce()
      block: Don't poll in bdrv_replace_child_noperm()
      block: Remove poll parameter from bdrv_parent_drained_begin_single()
      block: Factor out bdrv_drain_all_begin_nopoll()
      Import clang-tsa.h
      clang-tsa: Add TSA_ASSERT() macro
      clang-tsa: Add macros for shared locks
      configure: Enable -Wthread-safety if present
      test-bdrv-drain: Fix incorrrect drain assumptions
      block: Fix locking in external_snapshot_prepare()
      graph-lock: TSA annotations for lock/unlock functions
      Mark assert_bdrv_graph_readable/writable() GRAPH_RD/WRLOCK
      block: GRAPH_RDLOCK for functions only called by co_wrappers

Paolo Bonzini (1):
      graph-lock: Introduce a lock to protect block graph operations

Vladimir Sementsov-Ogievskiy (4):
      block: Inline bdrv_detach_child()
      block: drop bdrv_remove_filter_or_cow_child
      block: bdrv_refresh_perms(): allow external tran
      block: refactor bdrv_list_refresh_perms to allow any list of nodes

 docs/devel/block-coroutine-wrapper.rst |   6 +-
 configure                              |   1 +
 block/block-gen.h                      |  11 +-
 block/coroutines.h                     |  21 +-
 include/block/aio.h                    |   9 +
 include/block/block-common.h           |  27 ++-
 include/block/block-copy.h             |   5 +-
 include/block/block-global-state.h     |  15 +-
 include/block/block-io.h               | 136 +++++------
 include/block/block_int-common.h       |  49 ++--
 include/block/block_int-global-state.h |  17 --
 include/block/block_int-io.h           |  12 -
 include/block/block_int.h              |   1 +
 include/block/dirty-bitmap.h           |  10 +-
 include/block/graph-lock.h             | 280 +++++++++++++++++++++++
 include/qemu/clang-tsa.h               | 114 ++++++++++
 include/sysemu/block-backend-io.h      |  77 ++++---
 block.c                                | 404 ++++++++++++++++++---------------
 block/block-backend.c                  |  25 +-
 block/block-copy.c                     |  21 +-
 block/commit.c                         |   4 +-
 block/crypto.c                         |   2 +-
 block/dirty-bitmap.c                   |  88 +------
 block/graph-lock.c                     | 275 ++++++++++++++++++++++
 block/io.c                             | 367 ++++++++++--------------------
 block/parallels.c                      |   2 +-
 block/qcow.c                           |   2 +-
 block/qcow2.c                          |   4 +-
 block/qed.c                            |  28 ++-
 block/raw-format.c                     |   2 +-
 block/replication.c                    |   6 -
 block/stream.c                         |  26 ++-
 block/throttle.c                       |   8 +-
 block/vdi.c                            |   2 +-
 block/vhdx.c                           |   2 +-
 block/vmdk.c                           |  38 ++--
 block/vpc.c                            |   2 +-
 blockdev.c                             |  17 +-
 blockjob.c                             |   2 +-
 nbd/server.c                           |  47 ++--
 stubs/graph-lock.c                     |  10 +
 tests/unit/test-bdrv-drain.c           | 387 +++++++++----------------------
 util/async.c                           |   4 +
 scripts/block-coroutine-wrapper.py     | 133 ++++++++---
 block/meson.build                      |   2 +
 stubs/meson.build                      |   1 +
 46 files changed, 1575 insertions(+), 1127 deletions(-)
 create mode 100644 include/block/graph-lock.h
 create mode 100644 include/qemu/clang-tsa.h
 create mode 100644 block/graph-lock.c
 create mode 100644 stubs/graph-lock.c



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

end of thread, other threads:[~2022-12-15  9:53 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-15 12:44 [PULL 00/51] Block layer patches Kevin Wolf
2020-05-15 12:44 ` [PULL 01/51] iotests/109: Don't mirror with mismatched size Kevin Wolf
2020-05-15 12:44 ` [PULL 02/51] iotests/229: Use blkdebug to inject an error Kevin Wolf
2020-05-15 12:44 ` [PULL 03/51] mirror: Make sure that source and target size match Kevin Wolf
2020-05-15 12:44 ` [PULL 04/51] iotests: Mirror with different source/target size Kevin Wolf
2020-05-15 12:44 ` [PULL 05/51] block/replication.c: Avoid cancelling the job twice Kevin Wolf
2020-05-15 12:44 ` [PULL 06/51] iotests: Fix incomplete type declarations Kevin Wolf
2020-05-15 12:44 ` [PULL 07/51] iotests: Run pylint and mypy in a testcase Kevin Wolf
2020-05-15 12:44 ` [PULL 08/51] block: Add bdrv_make_empty() Kevin Wolf
2020-05-15 12:44 ` [PULL 09/51] block: Add blk_make_empty() Kevin Wolf
2020-05-15 12:44 ` [PULL 10/51] block: Use blk_make_empty() after commits Kevin Wolf
2020-05-15 12:44 ` [PULL 11/51] replication: Avoid blk_make_empty() on read-only child Kevin Wolf
2020-05-15 12:44 ` [PULL 12/51] block: Use bdrv_make_empty() where possible Kevin Wolf
2020-05-15 12:44 ` [PULL 13/51] block: Mark commit, mirror, blkreplay as filters Kevin Wolf
2020-05-15 12:44 ` [PULL 14/51] block: Add BlockDriver.is_format Kevin Wolf
2020-05-15 12:44 ` [PULL 15/51] block: Rename BdrvChildRole to BdrvChildClass Kevin Wolf
2020-05-15 12:44 ` [PULL 16/51] block: Add BdrvChildRole and BdrvChildRoleBits Kevin Wolf
2020-05-15 12:44 ` [PULL 17/51] block: Add BdrvChildRole to BdrvChild Kevin Wolf
2020-05-15 12:44 ` [PULL 18/51] block: Pass BdrvChildRole to bdrv_child_perm() Kevin Wolf
2020-05-15 12:44 ` [PULL 19/51] block: Pass BdrvChildRole to .inherit_options() Kevin Wolf
2020-05-15 12:44 ` [PULL 20/51] block: Pass parent_is_format " Kevin Wolf
2020-05-15 12:44 ` [PULL 21/51] block: Rename bdrv_inherited_options() Kevin Wolf
2020-05-15 12:44 ` [PULL 22/51] block: Add generic bdrv_inherited_options() Kevin Wolf
2020-05-15 12:44 ` [PULL 23/51] block: Use bdrv_inherited_options() Kevin Wolf
2020-05-15 12:44 ` [PULL 24/51] block: Unify bdrv_child_cb_attach() Kevin Wolf
2020-05-15 12:44 ` [PULL 25/51] block: Unify bdrv_child_cb_detach() Kevin Wolf
2020-05-15 12:44 ` [PULL 26/51] block: Add child_of_bds Kevin Wolf
2020-05-15 12:44 ` [PULL 27/51] block: Distinguish paths in *_format_default_perms Kevin Wolf
2020-05-15 12:44 ` [PULL 28/51] block: Pull out bdrv_default_perms_for_cow() Kevin Wolf
2020-05-15 12:44 ` [PULL 29/51] block: Pull out bdrv_default_perms_for_storage() Kevin Wolf
2020-05-15 12:45 ` [PULL 30/51] block: Relax *perms_for_storage for data children Kevin Wolf
2020-05-15 12:45 ` [PULL 31/51] block: Add bdrv_default_perms() Kevin Wolf
2020-05-15 12:45 ` [PULL 32/51] raw-format: Split raw_read_options() Kevin Wolf
2020-05-15 12:45 ` [PULL 33/51] block: Switch child_format users to child_of_bds Kevin Wolf
2020-05-15 12:45 ` [PULL 34/51] block: Drop child_format Kevin Wolf
2020-05-15 12:45 ` [PULL 35/51] block: Make backing files child_of_bds children Kevin Wolf
2020-05-15 12:45 ` [PULL 36/51] block: Drop child_backing Kevin Wolf
2020-05-15 12:45 ` [PULL 37/51] block: Make format drivers use child_of_bds Kevin Wolf
2020-05-15 12:45 ` [PULL 38/51] block: Make filter " Kevin Wolf
2020-05-15 12:45 ` [PULL 39/51] block: Use child_of_bds in remaining places Kevin Wolf
2020-05-15 12:45 ` [PULL 40/51] tests: Use child_of_bds instead of child_file Kevin Wolf
2020-05-15 12:45 ` [PULL 41/51] block: Use bdrv_default_perms() Kevin Wolf
2020-05-15 12:45 ` [PULL 42/51] block: Make bdrv_filter_default_perms() static Kevin Wolf
2020-05-15 12:45 ` [PULL 43/51] block: Drop bdrv_format_default_perms() Kevin Wolf
2020-05-15 12:45 ` [PULL 44/51] block: Drop child_file Kevin Wolf
2020-05-15 12:45 ` [PULL 45/51] block: Pass BdrvChildRole in remaining cases Kevin Wolf
2020-05-15 12:45 ` [PULL 46/51] block: Drop @child_class from bdrv_child_perm() Kevin Wolf
2020-05-15 12:45 ` [PULL 47/51] block/block-copy: Fix uninitialized variable in block_copy_task_entry Kevin Wolf
2020-05-15 12:45 ` [PULL 48/51] block/block-copy: Simplify block_copy_do_copy() Kevin Wolf
2020-05-15 12:45 ` [PULL 49/51] iotests: log messages from notrun() Kevin Wolf
2020-05-15 12:45 ` [PULL 50/51] hw/ide/ahci: Log lost IRQs Kevin Wolf
2020-05-15 12:45 ` [PULL 51/51] iotests/030: Reduce run time by unthrottling job earlier Kevin Wolf
2020-05-15 14:28 ` [PULL 00/51] Block layer patches Peter Maydell
2020-05-15 20:30 ` no-reply
  -- strict thread matches above, loose matches on Subject: below --
2022-12-14 13:44 Kevin Wolf
2022-12-14 22:35 ` Peter Maydell
2022-12-15  9:44   ` Kevin Wolf

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