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