Skip to content
  • Daniel P. Berrange's avatar
    Add event notification for guest balloon changes · 973603a8
    Daniel P. Berrange authored
    
    
    After setting a balloon target value, applications have to
    continually poll 'query-balloon' to determine whether the
    guest has reacted to this request. The virtio-balloon backend
    knows exactly when the guest has reacted though, and thus it
    is possible to emit a JSON event to tell the mgmt application
    whenever the guest balloon changes.
    
    This introduces a new 'qemu_balloon_changed()' API which is
    to be called by balloon driver backends, whenever they have
    a change in balloon value. This takes the 'actual' balloon
    value, as would be found in the BalloonInfo struct.
    
    The qemu_balloon_change API emits a JSON monitor event which
    looks like:
    
      {"timestamp": {"seconds": 1337162462, "microseconds": 814521},
       "event": "BALLOON_CHANGE", "data": {"actual": 944766976}}
    
    * balloon.c, balloon.h: Introduce qemu_balloon_changed() for
      emitting balloon change events on the monitor
    * hw/virtio-balloon.c: Invoke qemu_balloon_changed() whenever
      the guest changes the balloon actual value
    * monitor.c, monitor.h: Define QEVENT_BALLOON_CHANGE
    
    Signed-off-by: default avatarDaniel P. Berrange <berrange@redhat.com>
    Acked-by: default avatarAmit Shah <amit.shah@redhat.com>
    Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
    973603a8