Maximum packet size for TSO is 65535+ethheader (+vlan header if have), for TSO, 
frame size is set to 64k+4k (for tpacket3_header), block size is same as frame 
size, tpacket send requires one packet must be inside one frame, one packet 
can't cross frame boundary for tpacket.

Please read my code for details by 
https://mail.openvswitch.org/pipermail/ovs-dev/2020-February/367689.html, I 
have sent out v3 patch, but no comments so far.


-----邮件原件-----
发件人: William Tu [mailto:[email protected]] 
发送时间: 2020年2月14日 9:56
收件人: Yi Yang (杨燚)-云服务集团 <[email protected]>
抄送: [email protected]; [email protected]; [email protected]; 
[email protected]; [email protected]
主题: Re: [ovs-dev] [PATCH v2] Use TPACKET_V3 to accelerate veth for userspace 
datapath

On Thu, Feb 13, 2020 at 5:00 PM Yi Yang (杨燚)-云服务集团 <[email protected]> wrote:
>
> No, block size and frame size are defined by user, you can specify any size, 
> but block size must be pagesize aligned, please read v3 patch and try it in 
> your environment.
>

Right, but
How do we set block size and frame size to accommodate the TSO 64K-size packet?

William

> -----邮件原件-----
> 发件人: William Tu [mailto:[email protected]]
> 发送时间: 2020年2月14日 8:38
> 收件人: Ilya Maximets <[email protected]>
> 抄送: [email protected]; ovs-dev <[email protected]>; yang_y_yi 
> <[email protected]>; Ben Pfaff <[email protected]>; Yi Yang (杨燚)-云服务集团 
> <[email protected]>
> 主题: Re: [ovs-dev] [PATCH v2] Use TPACKET_V3 to accelerate veth for 
> userspace datapath
>
> On Fri, Feb 7, 2020 at 6:43 AM Ilya Maximets <[email protected]> wrote:
> >
> > On 2/7/20 12:50 PM, [email protected] wrote:
> > > From: Yi Yang <[email protected]>
> > >
> > > We can avoid high system call overhead by using TPACKET_V3 and 
> > > using DPDK-like poll to receive and send packets (Note: send still 
> > > needs to call sendto to trigger final packet transmission).
> > >
> > >>From Linux kernel 3.10 on, TPACKET_V3 has been supported,
> > > so all the Linux kernels current OVS supports can run
> > > TPACKET_V3 without any problem.
> > >
> > > I can see about 30% performance improvement for veth compared to 
> > > last recvmmsg optimization if I use TPACKET_V3, it is about 1.98 
> > > Gbps, but it was 1.47 Gbps before.
> > >
> > > Note: it can't support TSO which is in progress.
> >
> > So, this patch effectively breaks TSO functionality in compile time, 
> > i.e. it compiles out the TSO capable function invocation.
> > I don't think that we should mege that. For this patch to be 
> > acceptable, tpacket implementation should support TSO or it should 
> > be possible to dynamically switch to usual sendmmsg if we want to enable 
> > TSO support.
> >
> I think it's impossible to support tpacket + TSO, because tpacket 
> pre-allocate a ring buffer with 2K buffer size, and each descriptor can only 
> point to one entry.
> (If I understand correctly)
>
> So I think we should dynamically switch back to sendmmsg when TSO is enabled.
>
> Regards,
> William
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to