[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 0/4] qmp: Optionally run handlers in coroutines
From: |
Stefan Hajnoczi |
Subject: |
Re: [PATCH v2 0/4] qmp: Optionally run handlers in coroutines |
Date: |
Wed, 15 Jan 2020 13:11:02 +0000 |
On Tue, Jan 14, 2020 at 07:27:31PM +0100, Kevin Wolf wrote:
> Some QMP command handlers can block the main loop for a relatively long
> time, for example because they perform some I/O. This is quite nasty.
> Allowing such handlers to run in a coroutine where they can yield (and
> therefore release the BQL) while waiting for an event such as I/O
> completion solves the problem.
>
> This series adds the infrastructure to allow this and switches
> block_resize to run in a coroutine as a first example.
>
> This is an alternative solution to Marc-André's "monitor: add
> asynchronous command type" series.
>
> v2:
> - Fix typo in a commit message [Eric]
> - Use hyphen instead of underscore for the test command [Eric]
> - Mark qmp_block_resize() as coroutine_fn [Stefan]
>
>
> Kevin Wolf (4):
> qapi: Add a 'coroutine' flag for commands
> vl: Initialise main loop earlier
> qmp: Move dispatcher to a coroutine
> block: Mark 'block_resize' as coroutine
>
> qapi/block-core.json | 3 +-
> tests/qapi-schema/qapi-schema-test.json | 1 +
> docs/devel/qapi-code-gen.txt | 4 ++
> include/qapi/qmp/dispatch.h | 3 +
> monitor/monitor-internal.h | 5 +-
> blockdev.c | 6 +-
> monitor/monitor.c | 24 ++++---
> monitor/qmp.c | 83 ++++++++++++++++---------
> qapi/qmp-dispatch.c | 38 ++++++++++-
> tests/test-qmp-cmds.c | 4 ++
> vl.c | 10 +--
> scripts/qapi/commands.py | 17 +++--
> scripts/qapi/doc.py | 2 +-
> scripts/qapi/expr.py | 4 +-
> scripts/qapi/introspect.py | 2 +-
> scripts/qapi/schema.py | 9 ++-
> tests/qapi-schema/qapi-schema-test.out | 2 +
> tests/qapi-schema/test-qapi.py | 7 ++-
> 18 files changed, 158 insertions(+), 66 deletions(-)
>
> --
> 2.20.1
>
Reviewed-by: Stefan Hajnoczi <address@hidden>
signature.asc
Description: PGP signature
- [PATCH v2 0/4] qmp: Optionally run handlers in coroutines, Kevin Wolf, 2020/01/14
- [PATCH v2 2/4] vl: Initialise main loop earlier, Kevin Wolf, 2020/01/14
- [PATCH v2 1/4] qapi: Add a 'coroutine' flag for commands, Kevin Wolf, 2020/01/14
- [PATCH v2 3/4] qmp: Move dispatcher to a coroutine, Kevin Wolf, 2020/01/14
- [PATCH v2 4/4] block: Mark 'block_resize' as coroutine, Kevin Wolf, 2020/01/14
- Re: [PATCH v2 0/4] qmp: Optionally run handlers in coroutines, Daniel P . Berrangé, 2020/01/14
- Re: [PATCH v2 0/4] qmp: Optionally run handlers in coroutines, no-reply, 2020/01/14
- Re: [PATCH v2 0/4] qmp: Optionally run handlers in coroutines,
Stefan Hajnoczi <=