[ovs-dev] [PATCH v4 0/4] Support dynamic rebalancing of offloaded flows
sriharsha.basavapatna at broadcom.com
Tue Jul 24 10:55:56 UTC 2018
Just checking if you had a chance to look at v4 of this patch-set,
curious to know if you have any further comments.
On Thu, Jul 12, 2018 at 12:59 PM, Sriharsha Basavapatna
<sriharsha.basavapatna at broadcom.com> wrote:
> With the current OVS offload design, when an offload-device fails to add a
> flow rule and returns an error, OVS adds the rule to the kernel datapath.
> The flow gets processed by the kernel datapath for the entire life of that
> flow. This is fine when an error is returned by the device due to lack of
> support for certain keys or actions.
> But when an error is returned due to temporary conditions such as lack of
> resources to add a flow rule, the flow continues to be processed by kernel
> even when resources become available later. That is, those flows never get
> offloaded again. This problem becomes more pronounced when a flow that has
> been initially offloaded may have a smaller packet rate than a later flow
> that could not be offloaded due to lack of resources. This leads to
> inefficient use of HW resources and wastage of host CPU cycles.
> This patch-set addresses this issue by providing a way to detect temporary
> offload resource constraints (Out-Of-Resource or OOR condition) and to
> selectively and dynamically offload flows with a higher packets-per-second
> (pps) rate. This dynamic rebalancing is done periodically on netdevs that
> are in OOR state until resources become available to offload all pending
> The patch-set involves the following changes at a high level:
> 1. Detection of Out-Of-Resources (OOR) condition on an offload-capable
> 2. Gathering flow offload selection criteria for all flows on an OOR netdev;
> i.e, packets-per-second (pps) rate of flows for offloaded and
> non-offloaded (pending) flows.
> 3. Dynamically replacing offloaded flows with a lower pps-rate, with
> non-offloaded flows with a higher pps-rate, on an OOR netdev.
> 4. A new OpenvSwitch configuration option - "offload-rebalancing"
> to enable this policy.
> - Updated parse_flow_put() with the following changes:
> - Fixed outdev memory leak with multiple output actions
> - Moved variables closer to their first use
> - Removed outdev check while setting oor, since indev is sufficient
> - Removed some VLOG_DBG() in patches 2 and 3
> - Reworded a few VLOG_DBG() in patch 3
> - Fixed a comment line in patch 3
> - Fixed build errors reported by 0-day robot
> - Updated patch prefixes with relevant subsystem names
> Sriharsha Basavapatna (4):
> dpif-netlink: Detect Out-Of-Resource condition on a netdev
> revalidator: Gather packets-per-second rate of flows
> revalidator: Rebalance offloaded flows based on the pps rate
> netdev: Add a configuration option to enable dynamic rebalancing of
> lib/dpif-netdev.c | 3 +-
> lib/dpif-netlink.c | 25 +-
> lib/dpif-provider.h | 8 +-
> lib/dpif.c | 20 +-
> lib/dpif.h | 20 +-
> lib/flow.c | 27 ++
> lib/flow.h | 1 +
> lib/netdev-provider.h | 8 +
> lib/netdev.c | 45 +++
> lib/netdev.h | 2 +
> ofproto/ofproto-dpif-upcall.c | 571 +++++++++++++++++++++++++++++++++-
> vswitchd/vswitch.xml | 22 ++
> 12 files changed, 732 insertions(+), 20 deletions(-)
More information about the dev