mirror of https://github.com/xqemu/xqemu.git
qapi event: convert BALLOON_CHANGE
Signed-off-by: Wenchao Xia <wenchaoqemu@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
5f41fbba90
commit
aef9d3115f
13
balloon.c
13
balloon.c
|
@ -81,19 +81,6 @@ static int qemu_balloon_status(BalloonInfo *info)
|
|||
return 1;
|
||||
}
|
||||
|
||||
void qemu_balloon_changed(int64_t actual)
|
||||
{
|
||||
QObject *data;
|
||||
|
||||
data = qobject_from_jsonf("{ 'actual': %" PRId64 " }",
|
||||
actual);
|
||||
|
||||
monitor_protocol_event(QEVENT_BALLOON_CHANGE, data);
|
||||
|
||||
qobject_decref(data);
|
||||
}
|
||||
|
||||
|
||||
BalloonInfo *qmp_query_balloon(Error **errp)
|
||||
{
|
||||
BalloonInfo *info;
|
||||
|
|
|
@ -1,23 +1,6 @@
|
|||
QEMU Machine Protocol Events
|
||||
============================
|
||||
|
||||
BALLOON_CHANGE
|
||||
--------------
|
||||
|
||||
Emitted when the guest changes the actual BALLOON level. This
|
||||
value is equivalent to the 'actual' field return by the
|
||||
'query-balloon' command
|
||||
|
||||
Data:
|
||||
|
||||
- "actual": actual level of the guest memory balloon in bytes (json-number)
|
||||
|
||||
Example:
|
||||
|
||||
{ "event": "BALLOON_CHANGE",
|
||||
"data": { "actual": 944766976 },
|
||||
"timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
|
||||
|
||||
GUEST_PANICKED
|
||||
--------------
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include "sysemu/kvm.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "qapi/visitor.h"
|
||||
#include "qapi-event.h"
|
||||
|
||||
#if defined(__linux__)
|
||||
#include <sys/mman.h>
|
||||
|
@ -289,8 +290,9 @@ static void virtio_balloon_set_config(VirtIODevice *vdev,
|
|||
memcpy(&config, config_data, sizeof(struct virtio_balloon_config));
|
||||
dev->actual = le32_to_cpu(config.actual);
|
||||
if (dev->actual != oldactual) {
|
||||
qemu_balloon_changed(ram_size -
|
||||
((ram_addr_t) dev->actual << VIRTIO_BALLOON_PFN_SHIFT));
|
||||
qapi_event_send_balloon_change(ram_size -
|
||||
((ram_addr_t) dev->actual << VIRTIO_BALLOON_PFN_SHIFT),
|
||||
&error_abort);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,4 @@ int qemu_add_balloon_handler(QEMUBalloonEvent *event_func,
|
|||
QEMUBalloonStatus *stat_func, void *opaque);
|
||||
void qemu_remove_balloon_handler(void *opaque);
|
||||
|
||||
void qemu_balloon_changed(int64_t actual);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -616,6 +616,7 @@ static void monitor_qapi_event_init(void)
|
|||
/* Limit guest-triggerable events to 1 per second */
|
||||
monitor_qapi_event_throttle(QAPI_EVENT_RTC_CHANGE, 1000);
|
||||
monitor_qapi_event_throttle(QAPI_EVENT_WATCHDOG, 1000);
|
||||
monitor_qapi_event_throttle(QAPI_EVENT_BALLOON_CHANGE, 1000);
|
||||
|
||||
qmp_event_set_func_emit(monitor_qapi_event_queue);
|
||||
}
|
||||
|
@ -742,8 +743,6 @@ monitor_protocol_event_throttle(MonitorEvent event,
|
|||
* and initialize state */
|
||||
static void monitor_protocol_event_init(void)
|
||||
{
|
||||
/* Limit RTC & BALLOON events to 1 per second */
|
||||
monitor_protocol_event_throttle(QEVENT_BALLOON_CHANGE, 1000);
|
||||
/* limit the rate of quorum events to avoid hammering the management */
|
||||
monitor_protocol_event_throttle(QEVENT_QUORUM_REPORT_BAD, 1000);
|
||||
monitor_protocol_event_throttle(QEVENT_QUORUM_FAILURE, 1000);
|
||||
|
|
|
@ -253,3 +253,16 @@
|
|||
##
|
||||
{ 'event': 'ACPI_DEVICE_OST',
|
||||
'data': { 'info': 'ACPIOSTInfo' } }
|
||||
|
||||
##
|
||||
# @BALLOON_CHANGE
|
||||
#
|
||||
# Emitted when the guest changes the actual BALLOON level. This value is
|
||||
# equivalent to the @actual field return by the 'query-balloon' command
|
||||
#
|
||||
# @actual: actual level of the guest memory balloon in bytes
|
||||
#
|
||||
# Since: 1.2
|
||||
##
|
||||
{ 'event': 'BALLOON_CHANGE',
|
||||
'data': { 'actual': 'int' } }
|
||||
|
|
Loading…
Reference in New Issue