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. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev