[PATCH v3 0/8] Still more coroutine and various fixes in block layer

Emanuele Giuseppe Esposito posted 8 patches 1 year, 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20221116085050.2295179-1-eesposit@redhat.com
Maintainers: Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, John Snow <jsnow@redhat.com>, Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>, Eric Blake <eblake@redhat.com>, Fam Zheng <fam@euphon.net>
There is a newer version of this series
block.c                            | 75 ++++++++++++++----------------
block/block-backend.c              | 21 +++++++++
block/block-copy.c                 | 15 +++---
block/commit.c                     |  4 +-
block/dirty-bitmap.c               | 66 ++++++++++++--------------
block/vmdk.c                       | 36 +++++++-------
include/block/block-global-state.h |  3 +-
include/sysemu/block-backend-io.h  |  9 ++++
nbd/server.c                       | 43 +++++++++--------
qemu-img.c                         |  4 +-
10 files changed, 151 insertions(+), 125 deletions(-)
[PATCH v3 0/8] Still more coroutine and various fixes in block layer
Posted by Emanuele Giuseppe Esposito 1 year, 5 months ago
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
---
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 (8):
  block-copy: add missing coroutine_fn annotations
  nbd/server.c: add missing coroutine_fn annotations
  block-backend: replace bdrv_*_above with blk_*_above
  block: distinguish between bdrv_create running in coroutine and not
  block/vmdk: add missing coroutine_fn annotations
  block: bdrv_create_file is a coroutine_fn
  block: bdrv_create is never called in coroutine context
  block/dirty-bitmap: remove unnecessary qemu_in_coroutine() case

 block.c                            | 75 ++++++++++++++----------------
 block/block-backend.c              | 21 +++++++++
 block/block-copy.c                 | 15 +++---
 block/commit.c                     |  4 +-
 block/dirty-bitmap.c               | 66 ++++++++++++--------------
 block/vmdk.c                       | 36 +++++++-------
 include/block/block-global-state.h |  3 +-
 include/sysemu/block-backend-io.h  |  9 ++++
 nbd/server.c                       | 43 +++++++++--------
 qemu-img.c                         |  4 +-
 10 files changed, 151 insertions(+), 125 deletions(-)

-- 
2.31.1
Re: [PATCH v3 0/8] Still more coroutine and various fixes in block layer
Posted by Emanuele Giuseppe Esposito 1 year, 5 months ago
I apologize, as discussed also in v2 I just realized I could introduce
generated_co_wrapper_simple already here and simplify patches 6 and 8.

Also I think commit messages are the old ones from v1.

I'll resend. Please ignore this serie.

Emanuele

Am 16/11/2022 um 09:50 schrieb Emanuele Giuseppe Esposito:
> 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
> ---
> 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 (8):
>   block-copy: add missing coroutine_fn annotations
>   nbd/server.c: add missing coroutine_fn annotations
>   block-backend: replace bdrv_*_above with blk_*_above
>   block: distinguish between bdrv_create running in coroutine and not
>   block/vmdk: add missing coroutine_fn annotations
>   block: bdrv_create_file is a coroutine_fn
>   block: bdrv_create is never called in coroutine context
>   block/dirty-bitmap: remove unnecessary qemu_in_coroutine() case
> 
>  block.c                            | 75 ++++++++++++++----------------
>  block/block-backend.c              | 21 +++++++++
>  block/block-copy.c                 | 15 +++---
>  block/commit.c                     |  4 +-
>  block/dirty-bitmap.c               | 66 ++++++++++++--------------
>  block/vmdk.c                       | 36 +++++++-------
>  include/block/block-global-state.h |  3 +-
>  include/sysemu/block-backend-io.h  |  9 ++++
>  nbd/server.c                       | 43 +++++++++--------
>  qemu-img.c                         |  4 +-
>  10 files changed, 151 insertions(+), 125 deletions(-)
>