[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/7] monitor: Simplify event throttling
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH 2/7] monitor: Simplify event throttling |
Date: |
Thu, 15 Oct 2015 16:43:13 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 10/15/2015 09:08 AM, Markus Armbruster wrote:
> The event throttling state machine is hard to understand. I'm not
> sure it's entirely correct. Rewrite it in a more straightforward
> manner:
>
> State 1: No event sent recently (less than evconf->rate ns ago)
>
> Invariant: evstate->timer is not pending, evstate->qdict is null
>
> On event: send event, arm timer, goto state 2
>
> State 2: Event sent recently, no additional event being delayed
>
> Invariant: evstate->timer is pending, evstate->qdict is null
>
> On event: store it in evstate->qdict, goto state 3
>
> On timer: goto state 1
>
> State 3: Event sent recently, additional event being delayed
>
> Invariant: evstate->timer is pending, evstate->qdict is non-null
>
> On event: store it in evstate->qdict, goto state 3
>
> On timer: send evstate->qdict, clear evstate->qdict,
> arm timer, goto state 2
>
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
> monitor.c | 63
> +++++++++++++++++++++++++++++-------------------------------
> trace-events | 4 ++--
> 2 files changed, 32 insertions(+), 35 deletions(-)
>
Reviewed-by: Eric Blake <address@hidden>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCH 0/7] Throttle event VSERPORT_CHANGE separately by "id", Markus Armbruster, 2015/10/15
- [Qemu-devel] [PATCH 1/7] monitor: Reduce casting of QAPI event QDict, Markus Armbruster, 2015/10/15
- [Qemu-devel] [PATCH 2/7] monitor: Simplify event throttling, Markus Armbruster, 2015/10/15
- Re: [Qemu-devel] [PATCH 2/7] monitor: Simplify event throttling,
Eric Blake <=
- [Qemu-devel] [PATCH 5/7] monitor: Turn monitor_qapi_event_state[] into a hash table, Markus Armbruster, 2015/10/15
- [Qemu-devel] [PATCH 6/7] monitor: Throttle event VSERPORT_CHANGE separately by "id", Markus Armbruster, 2015/10/15
- Re: [Qemu-devel] [PATCH 0/7] Throttle event VSERPORT_CHANGE separately by "id", Markus Armbruster, 2015/10/15
- [Qemu-devel] [PATCH 3/7] monitor: Switch from timer_new() to timer_new_ns(), Markus Armbruster, 2015/10/15
- [Qemu-devel] [PATCH 7/7] docs: Document QMP event rate limiting, Markus Armbruster, 2015/10/15
- [Qemu-devel] [PATCH 4/7] monitor: Split MonitorQAPIEventConf off MonitorQAPIEventState, Markus Armbruster, 2015/10/15
- [Qemu-devel] [PATCH 4.5/7] glib: add compatibility interface for g_hash_table_add(), Markus Armbruster, 2015/10/27