[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 00/14] Still more coroutine and various fixes in block layer
From: |
Emanuele Giuseppe Esposito |
Subject: |
[PATCH v6 00/14] Still more coroutine and various fixes in block layer |
Date: |
Fri, 25 Nov 2022 08:35:04 -0500 |
This is a dump of all minor coroutine-related fixes found while looking
around and testing various things in the QEMU block layer.
Patches aim to:
- add missing coroutine_fn annotation to the functions
- simplify to avoid the typical "if in coroutine: fn()
// else create_coroutine(fn)" already present in generated_co_wraper
functions.
- make sure that if a BlockDriver callback is defined as coroutine_fn, then
it is always running in a coroutine.
This serie is based on Kevin Wolf's series "block: Simplify drain".
Based-on: <20221108123738.530873-1-kwolf@redhat.com>
Emanuele
---
v6:
* use different naming for block-coroutine-wrapper annotations
* fix minor typos and patch odering
v5:
* add missing reviewed-by from Paolo
* minor indentation fixes
* use when possible _co_, but do not create new g_c_w. It will be done in
future series
* introduce QEMU_IN_COROUTINE
* reorder patches
* rebase on kevin block branch + v2 from "block: Simplify drain"
v4:
* use v2 commit messages
* introduce coroutine_wrapper to simplify patches
v3:
* Remove patch 1, base on kevin "drain semplification serie"
v2:
* clarified commit message in patches 2/3/6 on why we add coroutine_fn
Emanuele Giuseppe Esposito (14):
block-io: introduce coroutine_fn duplicates for
bdrv_common_block_status_above callers
block-copy: add missing coroutine_fn annotations
nbd/server.c: add missing coroutine_fn annotations
block-backend: replace bdrv_*_above with blk_*_above
block/vmdk: add missing 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: default to main loop aiocontext if
function does not have a BlockDriverState parameter
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
block.c | 65 +++----------
block/block-backend.c | 21 +++++
block/block-copy.c | 21 +++--
block/block-gen.h | 11 +--
block/commit.c | 4 +-
block/coroutines.h | 4 +-
block/crypto.c | 2 +-
block/dirty-bitmap.c | 88 +-----------------
block/io.c | 58 +++++++++++-
block/meson.build | 1 +
block/parallels.c | 2 +-
block/qcow.c | 2 +-
block/qcow2.c | 4 +-
block/qed.c | 2 +-
block/raw-format.c | 2 +-
block/vdi.c | 2 +-
block/vhdx.c | 2 +-
block/vmdk.c | 38 ++++----
block/vpc.c | 2 +-
docs/devel/block-coroutine-wrapper.rst | 6 +-
include/block/block-common.h | 20 ++--
include/block/block-copy.h | 5 +-
include/block/block-global-state.h | 11 ++-
include/block/block-io.h | 69 +++++++++-----
include/block/dirty-bitmap.h | 10 +-
include/sysemu/block-backend-io.h | 77 +++++++++-------
nbd/server.c | 47 +++++-----
scripts/block-coroutine-wrapper.py | 122 +++++++++++++++++--------
28 files changed, 376 insertions(+), 322 deletions(-)
--
2.31.1
- [PATCH v6 00/14] Still more coroutine and various fixes in block layer,
Emanuele Giuseppe Esposito <=
- [PATCH v6 03/14] nbd/server.c: add missing coroutine_fn annotations, Emanuele Giuseppe Esposito, 2022/11/25
- [PATCH v6 05/14] block/vmdk: add missing coroutine_fn annotations, Emanuele Giuseppe Esposito, 2022/11/25
- [PATCH v6 06/14] block: avoid duplicating filename string in bdrv_create, Emanuele Giuseppe Esposito, 2022/11/25
- [PATCH v6 04/14] block-backend: replace bdrv_*_above with blk_*_above, Emanuele Giuseppe Esposito, 2022/11/25
- [PATCH v6 10/14] block-coroutine-wrapper.py: introduce co_wrapper, Emanuele Giuseppe Esposito, 2022/11/25