Skip to content
  • Daniel P. Berrange's avatar
    Add rate limiting of RTC_CHANGE, BALLOON_CHANGE & WATCHDOG events · afeecec2
    Daniel P. Berrange authored
    
    
    Allow certain event types to be rate limited to avoid flooding
    monitor clients. The monitor_protocol_event() method is changed
    such that instead of immediately emitting the event to Monitor
    instances, it will call a new monitor_protocol_event_queue()
    method.
    
    This will check to see if the rate limit for the event has been
    exceeded, and if so schedule a timer to wakeup at the end of the
    rate limit period. If further events arrive before the timer fires,
    the previously queued event will be discarded in favour of the new
    event. The event will eventually be emitted when the timer fires.
    
    This logic is applied to RTC_CHANGE, BALLOON_CHANGE & WATCHDOG
    events, since the data associated with these events is stateless
    
     * monitor.c: Add support for rate limiting
     * monitor.h: Define monitor_global_init for one-time setup tasks
     * vl.c: Invoke monitor_global_init
     * trace-events: Add hooks for monitor event tracing
    
    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>
    afeecec2