Hi, Markus, Marc-Andre, I didn't follow up the latest discussions on the response queue or monitor changes. For now this series still makes sense to me, so I'm just rebasing the series to master and repost (with some additional changes/patches to address Markus's concerns). Please let me know if you have made any conclusion that I'm not aware of, or if this work needs any further rebasing.
v6 (previous version of the series might be incorrect; from this version, I continued to use the old version counts): - collect r-bs - use Markus's version of build_params() [Markus] - use \' instead of \" in Python codes [Markus] - in qapi_event_send_*() still pass in &error_abort instead of NULL [Markus] - remove COMMAND_DROPPED from document too - add missing pieces for test-qmp-cmds [Markus] - add one patch to remove as much different code path for oob as possible [Markus] TODO: - flow control test is still missing; I still didn't consider it much, also we possibly need to touch up monitor_puts() to use limited sized buffer to complete the flow control of QMP channel Please review. Thanks, Markus Armbruster (1): qapi: Fix build_params() for empty parameter list Peter Xu (12): monitor: simplify monitor_qmp_setup_handlers_bh qapi: remove error checks for event emission monitor: move need_resume flag into monitor struct monitor: suspend monitor instead of send CMD_DROP qapi: remove COMMAND_DROPPED event monitor: restrict response queue length too monitor: remove "x-oob", turn oob on by default Revert "tests: Add parameter to qtest_init_without_qmp_handshake" monitor: add traces for qmp queues tests: remove "0.15" prefix for test-qmp-cmds tests: add oob functional test for test-qmp-cmds monitor: reduce different code path for oob block/block-backend.c | 8 +- block/qcow2.c | 2 +- block/quorum.c | 4 +- block/write-threshold.c | 3 +- blockjob.c | 13 +-- cpus.c | 8 +- docs/devel/qapi-code-gen.txt | 6 +- docs/interop/qmp-spec.txt | 5 +- dump.c | 3 +- hw/acpi/core.c | 2 +- hw/acpi/cpu.c | 2 +- hw/acpi/memory_hotplug.c | 5 +- hw/char/virtio-console.c | 3 +- hw/core/qdev.c | 3 +- hw/net/virtio-net.c | 2 +- hw/ppc/spapr_rtc.c | 2 +- hw/timer/mc146818rtc.c | 2 +- hw/virtio/virtio-balloon.c | 3 +- hw/watchdog/watchdog.c | 15 ++- include/monitor/monitor.h | 1 - include/qapi/qmp-event.h | 3 +- job.c | 2 +- migration/migration.c | 4 +- migration/ram.c | 2 +- monitor.c | 194 +++++++++++++++++++---------------- qapi/misc.json | 40 -------- scripts/qapi/common.py | 10 +- scripts/qapi/events.py | 23 ++--- scsi/pr-manager-helper.c | 3 +- tests/libqtest.c | 10 +- tests/libqtest.h | 4 +- tests/qmp-test.c | 6 +- tests/test-qmp-cmds.c | 26 ++++- tests/test-qmp-event.c | 11 +- trace-events | 4 + ui/spice-core.c | 10 +- ui/vnc.c | 7 +- vl.c | 21 ++-- 38 files changed, 210 insertions(+), 262 deletions(-) -- 2.17.1