[ovs-dev] [PATCH 1/3] ofproto-dpif-upcall: Avoid unnecessarily installing datapath flows.

Ben Pfaff blp at nicira.com
Fri Jan 10 23:20:04 UTC 2014


On Fri, Jan 10, 2014 at 03:18:24PM -0800, Ben Pfaff wrote:
> handle_upcalls() always installed a flow for every packet, as long as
> the datapath didn't already have too many flows, but there are cases where
> we don't want to do this:
> 
>     - If we get multiple packets in a single microflow all in one batch
>       (perhaps due to GSO breaking up a large TCP packet for sending to
>       userspace, or for another reason), then we only need to install the
>       datapath flow once.
> 
>     - For a slow-pathed flow received via a slow-path action in the kernel,
>       we know that the kernel flow is already there (because otherwise it
>       would have been received as "no match" instead of an action), so
>       there is no benefit to reinstalling it.
> 
> Noticed because a CFM slow-pathed flow was getting reinstalled every time
> a CFM packet was received.
> 
> Reported-by: Guolin Yang <gyang at nicira.com>
> Signed-off-by: Ben Pfaff <blp at nicira.com>

These patches possibly fix performance problems (although I have not
measured).  They definitely fix what I perceive as bugs.  I plan to
backport them to branch-2.1 after review.



More information about the dev mailing list