On Tue, Oct 27, 2020 at 5:50 PM Yi Yang (杨燚)-云服务集团 <yangy...@inspur.com> wrote: > > -----邮件原件----- > 发件人: dev [mailto:ovs-dev-boun...@openvswitch.org] 代表 Ilya Maximets > 发送时间: 2020年10月27日 21:12 > 收件人: yang_y...@163.com; ovs-dev@openvswitch.org > 抄送: f...@sysclose.org; i.maxim...@ovn.org > 主题: Re: [ovs-dev] [PATCH V3 3/4] Add VXLAN TCP and UDP GRO support for DPDK > data path > > On 8/7/20 12:56 PM, yang_y...@163.com wrote: > > From: Yi Yang <yangy...@inspur.com> > > > > GRO(Generic Receive Offload) can help improve performance when TSO > > (TCP Segment Offload) or VXLAN TSO is enabled on transmit side, this > > can avoid overhead of ovs DPDK data path and enqueue vhost for VM by > > merging many small packets to large packets (65535 bytes at most) once > > it receives packets from physical NIC. > > IIUC, this patch allows multi-segment mbufs to float across different parts > of OVS. This will definitely crash it somewhere. Much more changes all over > the OVS required to make it safely work with such mbufs. There were few > attempts to introduce this support, but all of them ended up being rejected. > As it is this patch is not acceptable as it doesn't cover almost anything > beside simple cases inside netdev implementation. > > Here is the latest attempt with multi-segment mbufs: > https://patchwork.ozlabs.org/project/openvswitch/list/?series=130193&state=*
Thanks, that's very helpful. Looks like a huge amount of work to introduce multi-seg mbuf. > > Best regards, Ilya Maximets. > > [Yi Yang] We have to support this because we have supported TSO for TCP, it > can't handle big UDP, this is why we must introduce GSO, the prerequisite of > GSO is multi-segment must be enabled because GSOed mbufs are > multi-segmented, but it is just last step before dpdk Tx, so I don't think > it is an issue, per my test in our openstack environment, I didn't encounter > any crash, this just enabled DPDK PMD driver to handle GSOed mbuf. For GRO, > reassembling also use chained multi-segment mbuf to avoid copy, per long time > test, it also didn't lead to any crash. We can fix some corner cases if they > aren't covered. > I just started to understand the problem. Sorry if I missed something. So currently what do we do to prevent DPDK sending OVS using multi-seg mbuf? Do we check it and linearize the mbuf? Can we make GSO/GRO working using linearized mbuf? Regards, William _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev