[ovs-dev] Statistics Collection Performance Impact

Ben Pfaff blp at nicira.com
Wed Dec 21 20:10:45 UTC 2011


On Wed, Dec 21, 2011 at 05:54:18PM +0900, Simon Horman wrote:
> On Mon, Dec 12, 2011 at 09:46:44AM -0800, Ben Pfaff wrote:
> > 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.
> 
> thanks for your advice. It seems that you are correct as the
> patch below is working.
> 
> The patch is against a slightly old revision of the master branch.
> I will rebase it if you think that I am on the right track.

At first glance it looks quite reasonable.  If you rebase it and add a
Signed-off-by (we recently adopted this convention at a suggestion
from Chris Wright at Red Hat) then I'll do a full review.

Thanks,

Ben.



More information about the dev mailing list