[ovs-git] [openvswitch/ovs] 5b5c07: upcall: Don't start new revalidation round too soo...

GitHub noreply at github.com
Tue Sep 27 19:56:52 UTC 2016


  Branch: refs/heads/branch-2.6
  Home:   https://github.com/openvswitch/ovs
  Commit: 5b5c07d75b3e375a794d806416496f92e3ad9b96
      https://github.com/openvswitch/ovs/commit/5b5c07d75b3e375a794d806416496f92e3ad9b96
  Author: Jarno Rajahalme <jarno at ovn.org>
  Date:   2016-09-27 (Tue, 27 Sep 2016)

  Changed paths:
    M ofproto/ofproto-dpif-upcall.c
    M tests/ofproto-dpif.at

  Log Message:
  -----------
  upcall: Don't start new revalidation round too soon after the last one.

The execution time of 'ovs-ofctl add-flows' with a large number of
flows can be more than halved if revalidators are not running after
each flow mod separately.  This was first suspected when it was found
that 'ovs-ofctl --bundle add-flows' is about 10 times faster than the
same command without the '--bundle' option in a scenario where there
is a large set of flows being added and no datapath flows at all.  One
of the differences caused by the '--bundle' option is that the
revalidators are woken up only once, at the end of the whole set of
flow table changes, rather than after each flow table change
individually.

This patch limits the revalidation to run at most 200 times a second
by enforcing a minimum of 5ms time gap between the start times of
revalidation rounds.  If nothing happens in, say 6 milliseconds, and
then a new flow table change is signaled, the revalidator threads wake
up immediately without any further delay.  Values smaller than 5 were
found to increase the 'ovs-ofctl add-flows' execution time noticeably.

Since the revalidators are not running after each flow mod, the
overall OVS CPU utilization during the 'ovs-ofctl add-flows' run time
is reduced roughly by one core on a four core machine.

In testing the 'ovs-ofctl add-flows' execution time is not
significantly improved from this even if the revalidators are not
notified about the flow table changes at all.

Signed-off-by: Jarno Rajahalme <jarno at ovn.org>
Acked-by: Ben Pfaff <blp at ovn.org>




More information about the git mailing list