Commit aef9d311 authored by Wenchao Xia's avatar Wenchao Xia Committed by Luiz Capitulino
Browse files

qapi event: convert BALLOON_CHANGE

parent 5f41fbba
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -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;
+0 −17
Original line number Diff line number Diff line
                   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
--------------

+4 −2
Original line number Diff line number Diff line
@@ -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);
    }
}

+0 −2
Original line number Diff line number Diff line
@@ -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
+1 −2
Original line number Diff line number Diff line
@@ -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);
Loading