On Wed, Dec 21, 2011 at 12:10:45PM -0800, Ben Pfaff wrote:
> 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.

Once again I sat on this for longer than I had hoped.
I have made a fresh patch and will send it momentarily.

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to