[ovs-dev] [PATCH v6 0/1] Balance-tcp bond mode optimization

Matteo Croce mcroce at redhat.com
Fri Sep 13 13:20:26 UTC 2019


On Wed, Sep 11, 2019 at 8:37 PM Matteo Croce <mcroce at redhat.com> wrote:
>
> On Tue, Sep 10, 2019 at 11:53 AM Vishal Deep Ajmera
> <vishal.deep.ajmera at ericsson.com> wrote:
> >
> > v5->v6:
> >  Addressed comments from Ilya Maximets.
> >  https://mail.openvswitch.org/pipermail/ovs-dev/2019-August/362001.html
> >  Rebased to OVS master.
> >
> > v4->v5:
> >  Support for stats per hash bucket.
> >  Support for dynamic load balancing.
> >  Rebased to OVS Master.
> >
> > v3->v4:
> >  Addressed Ilya Maximets comments.
> >  https://mail.openvswitch.org/pipermail/ovs-dev/2019-July/360452.html
> >
> > v2->v3:
> >  Rebased to OVS master.
> >  Fixed git merge issue.
> >
> > v1->v2:
> >  Updated datapath action to hash + lb-output.
> >  Updated throughput test observations.
> >  Rebased to OVS master.
> >
> > Vishal Deep Ajmera (1):
> >   Avoid dp_hash recirculation for balance-tcp bond selection mode
> >
> >  datapath/linux/compat/include/linux/openvswitch.h |   2 +
> >  lib/dpif-netdev.c                                 | 515 ++++++++++++++++++++--
> >  lib/dpif-netlink.c                                |   3 +
> >  lib/dpif-provider.h                               |   8 +
> >  lib/dpif.c                                        |  48 ++
> >  lib/dpif.h                                        |   7 +
> >  lib/odp-execute.c                                 |   2 +
> >  lib/odp-util.c                                    |   4 +
> >  ofproto/bond.c                                    |  52 ++-
> >  ofproto/bond.h                                    |   9 +
> >  ofproto/ofproto-dpif-ipfix.c                      |   1 +
> >  ofproto/ofproto-dpif-sflow.c                      |   1 +
> >  ofproto/ofproto-dpif-xlate.c                      |  39 +-
> >  ofproto/ofproto-dpif.c                            |  32 ++
> >  ofproto/ofproto-dpif.h                            |  12 +-
> >  tests/lacp.at                                     |   9 +
> >  vswitchd/bridge.c                                 |   4 +
> >  vswitchd/vswitch.xml                              |  10 +
> >  18 files changed, 698 insertions(+), 60 deletions(-)
> >
> > --
> > 1.9.1
> >
>
> Hi,
>
> I confirm a decent performance improvement with DPDK and balance-tcp bonding:
>
> lb-output-action=false
>
> rx: 740 Mbps 1446 kpps
>
> lb-output-action=true
>
> rx: 860 Mbps 1680 kpps
>
> I'm running a very simple test with a tweaked version of testpmd which
> generates 256 L4 flows, I guess that with much flows the improvement
> is way higher.
>
> Tested-by: Matteo Croce <mcroce at redhat.com>
>
> --
> Matteo Croce
> per aspera ad upstream

Hi,

I found an issue with the patch. It's not 100% reproducible, but
sometimes the option gets enabled regardless of the bonding type and
the configuration.
This breaks the unit tests, as the bond/show output is wrong:

# ovs-vsctl add-br br0
[63129.589500] device ovs-system entered promiscuous mode
[63129.591802] device br0 entered promiscuous mode

# ovs-vsctl add-bond br0 bond dummy0 dummy1 -- set Port bond
lacp=active bond-mode=active-backup
[63150.700542] device dummy1 entered promiscuous mode
[63150.700892] device dummy0 entered promiscuous mode

# ovs-vsctl get port bond other_config
{}

# ovs-appctl bond/show
---- bond ----
bond_mode: active-backup
bond may use recirculation: no, Recirc-ID : -1
bond-hash-basis: 0
lb-output-action: enabled
updelay: 0 ms
downdelay: 0 ms
lacp_status: negotiated
lacp_fallback_ab: false
active slave mac: 00:00:00:00:00:00(none)

slave dummy0: disabled
        may_enable: false

slave dummy1: disabled
        may_enable: false

Regards,
-- 
Matteo Croce
per aspera ad upstream


More information about the dev mailing list