[ovs-dev] [PATCH] ofproto: Optimise OpenFlow flow expiry

Simon Horman horms at verge.net.au
Tue Jan 15 00:38:46 UTC 2013


On Sun, Jan 13, 2013 at 09:22:31PM -0800, Ben Pfaff wrote:
> On Mon, Jan 14, 2013 at 10:06:13AM +0900, Simon Horman wrote:
> > Optimise OpenFlow flow expiry by placing expirable flows on a list.
> > This optimises scanning of flows for expiry in two ways:
> > 
> > * Empirically list traversal appears faster than the code it replaces.
> > 
> >   With 1,000,000 flows present an otherwise idle system I observed CPU
> >   utilisation of around 20% with the existing code but around 10% with
> >   this new code.
> > 
> > * Flows that will never expire are not traversed.
> > 
> >   This addresses a case seen in the field.
> > 
> > Signed-off-by: Simon Horman <horms at verge.net.au>
> 
> It seems reasonable to use a list for this but I'd be inclined to do it
> at the ofproto or ofproto-dpif layer rather than in the classifier.  It
> doesn't seem to me like a natural function of the classifier: the
> classifier is intended as a mechanism for quickly looking up an OpenFlow
> rule on the basis of a flow and doesn't to date have anything to do with
> expiration.

Thanks, that sounds reasonable. I'll see about updating my patch
accordingly.



More information about the dev mailing list