[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 0/4] qmp: Optionally run handlers in coroutines
From: |
Marc-André Lureau |
Subject: |
Re: [PATCH 0/4] qmp: Optionally run handlers in coroutines |
Date: |
Mon, 13 Jan 2020 11:00:32 +0400 |
Hi
On Thu, Jan 9, 2020 at 10:36 PM Kevin Wolf <address@hidden> 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.
>
> Kevin Wolf (4):
> qapi: Add a 'coroutine' flag for commands
> block: Mark 'block_resize' as coroutine
> vl: Initialise main loop earlier
> qmp: Move dispatcher to a 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 +-
> 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 ++-
> 17 files changed, 155 insertions(+), 63 deletions(-)
Series:
Reviewed-by: Marc-André Lureau <address@hidden>
--
Marc-André Lureau