This is just a draft, or a request for comments if you will. This patch sets drafts the support of sending events by QEMU Guest Agent. Events can plan important role in monitoring of the guest OS behaviour. The range of use cases ranges from events important for scheduling, e.g. memory and CPU usage statistics, to things like changes to IP addresses on network interfaces to for example changes in the list of active users.
For now the patch set adds single periodic callback function to the GA main loop that can perform checks and trigger events that have occured since previous run of the callback. We can of course take it one step further and add a general framwork for periodically running any of the already implemented commands. Add a function that would maintain a list of registered checks. Client would use some command (register-monitor-command) passing it a command name and timeout in seconds and the monitoring handler would then run the specified command and report the result... or report only if the return value changed since previous invocation. This feature would remove part of the communication overhead between client and GA. So before I invest any more time in either of these approaches, tell me. Would somethign like this be wanted or is that too controversial? Any other thoughts and ideas? Tomáš Golembiovský (3): qemu-ga: add support for events qemu-ga: add simple event reporting memory statistics qemu-ga: add support for periodic command runner Makefile | 7 +++- qga/Makefile.objs | 2 +- qga/channel-posix.c | 8 +++++ qga/channel-win32.c | 6 ++++ qga/channel.h | 1 + qga/guest-agent-core.h | 1 + qga/main.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++ qga/qapi-event.json | 35 ++++++++++++++++++ qga/qapi-schema.json | 2 ++ 9 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 qga/qapi-event.json -- 2.13.1