From: Paolo Bonzini <pbonzini@redhat.com>
To: Wenchao Xia <wenchaoqemu@gmail.com>, qemu-devel@nongnu.org
Cc: lcapitulino@redhat.com, mdroth@linux.vnet.ibm.com, armbru@redhat.com
Subject: Re: [Qemu-devel] [PATCH V6 00/29] add direct support of event in qapi schema
Date: Tue, 10 Jun 2014 07:48:21 +0200 [thread overview]
Message-ID: <53969C25.7010705@redhat.com> (raw)
In-Reply-To: <1401970944-18735-1-git-send-email-wenchaoqemu@gmail.com>
Il 05/06/2014 14:21, Wenchao Xia ha scritto:
> This series add support for tag/keyword 'event' in qapi-schema.
> A new file was created to store some helper functions in patch 2, patch 4 is
> the test case, patch 5 is a convert example.
>
> The implemention is done by generate API and a batch of parameters for each
> event define, it doesn't generate a struture and visit function in the
> background for every event, so it doesn't support nested structure in the
> define to avoid trouble. A callback layer is added to control the behavior.
> More detail can be found in patch 3's message and incode comments.
>
> v2:
> Address Luiz's comments:
> patch 3: rename *err to *local_err, do not initialize *qmp = NULL, create
> a new function qmp_build_evet_dict().
> Other change:
> reorgnized script in patch 3, it have a clear three steps, see patch 3's
> incode comments.
>
> v3:
> Address Luiz's comments:
> 2/5: use -1 when fail to get host timestamp.
> 3/5: typo fix and better incode comments. all unchanged functions are moved
> into qmp-event.c, from generated file. To do so without include issue, 'int'
> was used intead of 'enum' in function prototype declaration, since the 'enum'
> define is a generated type.
> Address Eric's comments:
> 2/5: use -1 when fail to get host timestamp.
> 3/5: typo fix, add docs/qapi-code-gen.txt.
> 4/5: typo fix, verify no other fields in member 'timestamp'.
> 5/5: add doc in qapi-schema.json.
> fix license, all script using GPL2, all C code use LGPL, just as other
> similar files in upstream.
>
> v4:
> Address Eric's comments:
> 2/5: typo fix, add copyright declaration, use a static function pointer
> instead of a struct in C file, assign -1 in two line of codes to avoid issue
> when tv_sec and tv_usec are not in same data width, fix indention.
> 3/5: typo fix, add copyright declaration.
> 4/5: add copyright declaration, simplify string compare with
> "d->result = g_strcmp0(...) == 0;", add check for tv_usec's range and value.
> Other:
> 3/5: all error check code was moved from qapi-event.py to qapi.py, and it
> reports better message with line number info. Added related test case.
> Note:
> Benoit's series which track input file better seems not the final version,
> so I didn't rebase this series ontop for now, will do it once Benoit's ones
> get ACKed.
>
> v5:
> Address Eric and Markus's comments:
> 2/28: use uint64_t for both sec and usec, to avoid type cast issue in printf.
> Other:
> Remove RFC, add full coversion by patch 5-28.
> 3/28: add prefix for event enum type name, to avoid double define of
> QAPIEvent in test code.
>
> v6:
> Address Eric's comments:
> 3/29: employ modularization mechnism of schema file of LluÃs series, remove
> error_is_set() usage.
> 4/29: Makefile change for LluÃs series.
> 5/29: separate patch for refactoring the existing schema defines, improve doc
> for @service in VncBasicInfo.
> 7/29-28/29: define and convert event caller one by one.
> Other change:
> 6/29: new way to add event emit implemention. In v5 it breaks old event
> mechnism, in v6 it touch nothing of old event mechnism but add a new set of
> functions for new event mechnism.
> 7/29: Add new file qapi-event.json to store event defines, and all type
> defines goes into qapi-schema.json.
> 29/29: related clean up change.
> Note:
> I have no way to verify target-s390x/kvm.c touched by patch 27/29, and
> block/quorum.c touched by patch 28/29, need a confirm from whom has the test
> env.
>
> Wenchao Xia (29):
> 1 os-posix: include sys/time.h
> 2 qapi: add event helper functions
> 3 qapi script: add event support
> 4 test: add test cases for qapi event
> 5 qapi: adjust existing defines
> 6 monitor: add an implemention as qapi event emit method
> 7 qapi: add new schema file qapi-event.json
> 8 qapi event: convert SHUTDOWN
> 9 qapi event: convert POWERDOWN
> 10 qapi event: convert RESET
> 11 qapi event: convert STOP
> 12 qapi event: convert RESUME
> 13 qapi event: convert SUSPEND
> 14 qapi event: convert SUSPEND_DISK
> 15 qapi event: convert WAKEUP
> 16 qapi event: convert RTC_CHANGE
> 17 qapi event: convert WATCHDOG
> 18 qapi event: convert DEVICE_DELETED
> 19 qapi event: convert DEVICE_TRAY_MOVED
> 20 qapi event: convert BLOCK_IO_ERROR and BLOCK_JOB_ERROR
> 21 qapi event: convert BLOCK_IMAGE_CORRUPTED
> 22 qapi event: convert other BLOCK_JOB events
> 23 qapi event: convert NIC_RX_FILTER_CHANGED
> 24 qapi event: convert VNC events
> 25 qapi event: convert SPICE events
> 26 qapi event: convert BALLOON_CHANGE
> 27 qapi event: convert GUEST_PANICKED
> 28 qapi event: convert QUORUM events
> 29 qapi event: clean up
>
> Makefile | 21 +-
> Makefile.objs | 2 +-
> balloon.c | 13 -
> block.c | 68 +---
> block/backup.c | 2 +-
> block/mirror.c | 9 +-
> block/qcow2-refcount.c | 14 +-
> block/quorum.c | 25 +-
> block/stream.c | 4 +-
> blockdev.c | 12 +-
> blockjob.c | 53 ++--
> cpus.c | 5 +-
> docs/qapi-code-gen.txt | 18 +
> docs/qmp/qmp-events.txt | 541 ------------------------------
> hmp.c | 5 +-
> hw/acpi/core.c | 4 +-
> hw/block/virtio-blk.c | 6 +-
> hw/core/qdev.c | 12 +-
> hw/ide/core.c | 6 +-
> hw/misc/pvpanic.c | 13 +-
> hw/net/virtio-net.c | 13 +-
> hw/ppc/spapr_rtas.c | 3 +-
> hw/scsi/scsi-disk.c | 6 +-
> hw/timer/mc146818rtc.c | 3 +-
> hw/virtio/virtio-balloon.c | 6 +-
> hw/watchdog/watchdog.c | 23 +-
> include/block/block.h | 4 -
> include/block/block_int.h | 3 -
> include/block/blockjob.h | 17 +-
> include/monitor/monitor.h | 40 ---
> include/qapi/qmp-event.h | 27 ++
> include/qemu/sockets.h | 3 +-
> include/sysemu/balloon.h | 2 -
> include/sysemu/os-posix.h | 2 +
> include/sysemu/sysemu.h | 2 -
> monitor.c | 185 +++--------
> qapi-event.json | 452 +++++++++++++++++++++++++
> qapi-schema.json | 178 +++++++++--
> qapi/Makefile.objs | 1 +
> qapi/qmp-event.c | 74 ++++
> scripts/qapi-event.py | 369 ++++++++++++++++++++
> scripts/qapi.py | 12 +
> stubs/Makefile.objs | 1 -
> stubs/mon-protocol-event.c | 6 -
> target-s390x/kvm.c | 8 +-
> tests/Makefile | 18 +-
> tests/qapi-schema/event-nest-struct.err | 1 +
> tests/qapi-schema/event-nest-struct.exit | 1 +
> tests/qapi-schema/event-nest-struct.json | 2 +
> tests/qapi-schema/qapi-schema-test.json | 12 +
> tests/qapi-schema/qapi-schema-test.out | 10 +-
> tests/test-qmp-event.c | 265 +++++++++++++++
> trace-events | 4 +
> ui/spice-core.c | 77 +++--
> ui/vnc.c | 120 ++++----
> ui/vnc.h | 4 +-
> util/qemu-sockets.c | 10 +-
> vl.c | 22 +-
> 58 files changed, 1732 insertions(+), 1087 deletions(-)
> delete mode 100644 docs/qmp/qmp-events.txt
> create mode 100644 include/qapi/qmp-event.h
> create mode 100644 qapi-event.json
> create mode 100644 qapi/qmp-event.c
> create mode 100644 scripts/qapi-event.py
> delete mode 100644 stubs/mon-protocol-event.c
> create mode 100644 tests/qapi-schema/event-nest-struct.err
> create mode 100644 tests/qapi-schema/event-nest-struct.exit
> create mode 100644 tests/qapi-schema/event-nest-struct.json
> create mode 100644 tests/qapi-schema/event-nest-struct.out
> create mode 100644 tests/test-qmp-event.c
>
>
>
Tested-by: Paolo Bonzini <pbonzini@redhat.com>
Unfortunately, this already does not apply anymore.
I've placed the rebase on branch qapi-event of my github repository.
The resolutions are trivial, so perhaps Luiz or Michael can pull from there?
Paolo
next prev parent reply other threads:[~2014-06-10 5:48 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-05 12:21 [Qemu-devel] [PATCH V6 00/29] add direct support of event in qapi schema Wenchao Xia
2014-06-05 12:21 ` [Qemu-devel] [PATCH V6 01/29] os-posix: include sys/time.h Wenchao Xia
2014-06-05 12:21 ` [Qemu-devel] [PATCH V6 02/29] qapi: add event helper functions Wenchao Xia
2014-06-05 12:21 ` [Qemu-devel] [PATCH V6 03/29] qapi script: add event support Wenchao Xia
2014-06-13 16:47 ` Eric Blake
2014-06-13 21:28 ` Eric Blake
2014-06-18 3:33 ` Eric Blake
2014-06-18 6:06 ` Paolo Bonzini
2014-06-18 22:45 ` Wenchao Xia
2014-06-18 3:50 ` Eric Blake
2014-06-05 12:21 ` [Qemu-devel] [PATCH V6 04/29] test: add test cases for qapi event Wenchao Xia
2014-06-13 17:05 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 05/29] qapi: adjust existing defines Wenchao Xia
2014-06-13 17:32 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 06/29] monitor: add an implemention as qapi event emit method Wenchao Xia
2014-06-13 19:04 ` Eric Blake
2014-06-15 0:27 ` Wenchao Xia
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 07/29] qapi: add new schema file qapi-event.json Wenchao Xia
2014-06-13 19:25 ` Eric Blake
2014-06-13 19:45 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 08/29] qapi event: convert SHUTDOWN Wenchao Xia
2014-06-13 19:57 ` Eric Blake
2014-06-15 0:32 ` Wenchao Xia
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 09/29] qapi event: convert POWERDOWN Wenchao Xia
2014-06-13 20:02 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 10/29] qapi event: convert RESET Wenchao Xia
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 11/29] qapi event: convert STOP Wenchao Xia
2014-06-13 20:29 ` Eric Blake
2014-06-17 9:17 ` Paolo Bonzini
2014-06-17 13:18 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 12/29] qapi event: convert RESUME Wenchao Xia
2014-06-13 20:33 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 13/29] qapi event: convert SUSPEND Wenchao Xia
2014-06-13 20:40 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 14/29] qapi event: convert SUSPEND_DISK Wenchao Xia
2014-06-13 20:42 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 15/29] qapi event: convert WAKEUP Wenchao Xia
2014-06-13 20:57 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 16/29] qapi event: convert RTC_CHANGE Wenchao Xia
2014-06-13 21:27 ` Eric Blake
2014-06-15 0:38 ` Wenchao Xia
2014-06-15 14:01 ` Paolo Bonzini
2014-06-15 14:00 ` Paolo Bonzini
2014-06-17 9:21 ` Paolo Bonzini
2014-06-17 13:19 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 17/29] qapi event: convert WATCHDOG Wenchao Xia
2014-06-13 21:47 ` Eric Blake
2014-06-13 22:05 ` Eric Blake
2014-06-15 0:45 ` Wenchao Xia
2014-06-17 9:23 ` Paolo Bonzini
2014-06-17 13:21 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 18/29] qapi event: convert DEVICE_DELETED Wenchao Xia
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 19/29] qapi event: convert DEVICE_TRAY_MOVED Wenchao Xia
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 20/29] qapi event: convert BLOCK_IO_ERROR and BLOCK_JOB_ERROR Wenchao Xia
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 21/29] qapi event: convert BLOCK_IMAGE_CORRUPTED Wenchao Xia
2014-06-16 22:53 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 22/29] qapi event: convert other BLOCK_JOB events Wenchao Xia
2014-06-16 22:57 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 23/29] qapi event: convert NIC_RX_FILTER_CHANGED Wenchao Xia
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 24/29] qapi event: convert VNC events Wenchao Xia
2014-06-16 23:01 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 25/29] qapi event: convert SPICE events Wenchao Xia
2014-06-16 23:05 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 26/29] qapi event: convert BALLOON_CHANGE Wenchao Xia
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 27/29] qapi event: convert GUEST_PANICKED Wenchao Xia
2014-06-16 14:08 ` Eric Blake
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 28/29] qapi event: convert QUORUM events Wenchao Xia
2014-06-05 12:22 ` [Qemu-devel] [PATCH V6 29/29] qapi event: clean up Wenchao Xia
2014-06-16 14:09 ` Eric Blake
2014-06-10 5:48 ` Paolo Bonzini [this message]
2014-06-15 0:52 ` [Qemu-devel] [PATCH V6 00/29] add direct support of event in qapi schema Wenchao Xia
2014-06-17 10:57 ` Paolo Bonzini
2014-06-17 16:05 ` Eric Blake
2014-06-17 16:30 ` Paolo Bonzini
2014-06-17 22:10 ` Wenchao Xia
2014-06-18 4:00 ` Eric Blake
2014-06-18 6:07 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53969C25.7010705@redhat.com \
--to=pbonzini@redhat.com \
--cc=armbru@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=wenchaoqemu@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.