[ovs-dev] [PATCH] userspace: Enable TSO support for non-DPDK.
William Tu
u9012063 at gmail.com
Thu Jan 30 15:29:32 UTC 2020
Hi Ilya,
Thanks for your quick response.
On Thu, Jan 30, 2020 at 1:14 AM Ilya Maximets <i.maximets at ovn.org> wrote:
>
> Hi.
> I didn't test or carefully review this. Just a couple of comments
> inline.
>
> Best regards, Ilya Maximets.
>
> On 30.01.2020 00:23, William Tu wrote:
> > For some cases, we want to use userspace datapath but not with
> > DPDK library, ex: using AF_XDP.
>
> AF_XDP is not a good example here because netdev-afxdp is not able
> to send or receive TSO packets. All such packets will be just dropped.
Yes. AF_XDP can not support TSO.
>
> The most sane scenario right now, I think, is to run system tests
> with TSO enabled to see how different parts of OVS reacts to oversized
> packets, however we could do that even now since we don't need to
> actually enable DPDK, we just need to build with it.
That's a great point, I will test it.
>
> > The patch enables non-DPDK support
> > for TSO (TCP Segmentation Offload). I measured the performance
> > using:
> > iperf3 -c (ns0) -> veth peer -> OVS -> veth peer -> iperf3 -s (ns1)
> > And got around 6Gbps, similar to that with DPDK.
> >
> > Tested-at: https://travis-ci.org/williamtu/ovs-travis/builds/643599592
> > Signed-off-by: William Tu <u9012063 at gmail.com>
> > ---
snip
> > static inline bool
> > diff --git a/lib/userspace-tso.c b/lib/userspace-tso.c
> > index 6a4a0149b7f5..a1a5e1de714f 100644
> > --- a/lib/userspace-tso.c
> > +++ b/lib/userspace-tso.c
> > @@ -35,12 +35,13 @@ userspace_tso_init(const struct smap *ovs_other_config)
> >
> > if (ovsthread_once_start(&once)) {
> > #ifdef DPDK_NETDEV
> > - VLOG_INFO("Userspace TCP Segmentation Offloading support enabled");
> > - userspace_tso = true;
> > + VLOG_INFO("Userspace TCP Segmentation Offloading support enabled"
> > + " by DPDK");
> > #else
> > - VLOG_WARN("Userspace TCP Segmentation Offloading can not be enabled"
> > - "since OVS is built without DPDK support.");
> > + VLOG_INFO("Userspace TCP Segmentation Offloading support enabled"
> > + " by native OVS");
> > #endif
>
> This is very confusing. Just remove the '#ifdef' and drop the '#else' branch.
>
OK
Thanks
William
More information about the dev
mailing list