[ovs-dev] Statistics Collection Performance Impact

Ben Pfaff blp at nicira.com
Mon Dec 12 17:46:44 UTC 2011

On Sun, Dec 11, 2011 at 11:20:50AM +0900, Simon Horman wrote:
> sorry for the long delay. I finally had a stab at implementing this idea
> but as yet it does not seem to be working.
> My implementation simply keeps track of a static struct dpif_flow_dump dump
> in update_stats() and resets it as necessary using dpif_flow_dump_start()
> and dpif_flow_dump_done().
> The result seems to be that flows are expiring all over the place.
> I assume this is because their stats are not being updated. Do I need
> to keep track of more state in order to take into account that
> the flow_table is changing between calls to update_stats()?

That sounds like what would happen if, each time you run expiration,
you consider all the flows in the kernel table, not just the flows
that have actually been retrieved from the kernel just now.  I guess
that, each time you run expiration, you should only consider the flows
that have actually been read from the kernel recently, and not
consider other flows for eviction.

More information about the dev mailing list