[ovs-discuss] OVS Polling Timer

Joe Stringer joe at ovn.org
Wed Apr 20 18:38:16 UTC 2016


Please don't drop the list.

I think that you need to just investigate further, profile,
timestamp/log different pieces of the processing. One direction might
be to monitor when the actual OpenFlow requests/responses are sent
between OVS and POX. I don't think that either OVS or POX are made for
this kind of use case, so I don't have any more information than you
about where the latency is introduced.

On 20 April 2016 at 11:28, Adil Ahmad <adilahmad17 at gmail.com> wrote:
> Hi,
>
> Thanks for the reply. Yes, I understand the points that you've made. So,
> currently I am able to fetch updated stats about every ~1.5 ms usually,
> after changing the line. But after about every 30ms, I experience a 'jump',
> which means that the flow stats event callback returns after about ~50 ms. I
> think hardware constraints come into play but I am not sure. Can you help
> explain this?
>
> Adil
>
> On Wed, Apr 20, 2016 at 11:16 PM, Joe Stringer <joe at ovn.org> wrote:
>>
>> On 19 April 2016 at 12:56, Adil Ahmad <adilahmad17 at gmail.com> wrote:
>> > Hi,
>> >
>> > I am trying to decrease the time that OVS takes to update its
>> > packet/byte
>> > counters. I was previously told that the line 898 of
>> > ofproto-dpif-upcall.c
>> > which is part of function udpif_validator is used to set the timer. The
>> > line
>> > is as follows:
>> >
>> > // Original
>> > poll_timer_wait_until(start_time + MIN(ofproto_max_idle, 500));
>> >
>> > //Changed
>> > poll_timer_wait_until(start_time + MIN(ofproto_max_idle, 1));
>>
>> Note that this timer simply sets the typical time that the revalidator
>> thread will sleep *after finishing all of its work*, so it doesn't
>> guarantee that stats will be synchronized every 1ms.
>>
>> > I changed it to 1 and I can now get updated counters at ~1ms frequency.
>> > However, I have noticed that after about 30 ms, there is a sudden jump
>> > and
>> > the stats handler takes a jump by about ~50ms. My controller is POX
>> > based
>> > and my timer is python datetime timer with microsecond granularity.
>> >
>> > Can anyone tell me why I see the jump?
>>
>> What do you mean by "jump"?
>>
>> All you've done is increase the consistency of stats within OVS - the
>> kernel module is more closely synchronised with the OpenFlow rules in
>> userspace. If you're fetching the stats via OpenFlow, then the main
>> thread might not be able to wake up and provide stats as quickly as
>> you want. Even if that is possible, there's still a whole host of
>> other potential pitfalls to trying to get realtime stats.
>
>



More information about the discuss mailing list