[ovs-dev] 答复: [PATCH v6] Use TPACKET_V3 to accelerate veth for userspace datapath

William Tu u9012063 at gmail.com
Fri Mar 13 16:22:15 UTC 2020


On Fri, Mar 13, 2020 at 8:57 AM Ben Pfaff <blp at ovn.org> wrote:
>
> On Fri, Mar 13, 2020 at 01:04:07AM +0000, Yi Yang (杨燚)-云服务集团 wrote:
> > Per my understanding, Ben meant a build system (which isn't Linux
> > probably, it doesn't have include/linux/if_packet.h) should be able to
> > build tpacket_v3 code in order that built-out binary can work on Linux
> > system with tpacket_v3 feature, this is Ben's point, that is why he
> > wanted me to add include/linux/if_packet.h in ovs repo.
> >
> > Ben, can you help double confirm if include/linux/if_packet.h in ovs
> > is necessary?
>
> I think my meaning was misunderstood.  Linux always has if_packet.h.
> Only recent enough Linux has TPACKET_V3 in if_packet.h.  If the system
> is Linux but the TPACKET_V3 types and constants are not defined in
> if_packet.h, then the build system should define them.

Thanks!

My suggestion is that if the system is Linux but the TPACKET_V3 types
and constants are not defined in if_packet.h, then just skip using
TPACKET_V3 and
use the current recvmmsg approach.  Because when we start  TPACKET_V3 patch,
the af_packet on veth performance is about 200Mbps, so tpacket_v3 has huge
performance benefits.

With YiYang's patch
"Use batch process recv for tap and raw socket in netdev datapath"
the af_packet on veth improves to 1.47Gbps. And tpacket_v3 shows
similar or 7% better performance. So there isn't a huge benefits now.

William


More information about the dev mailing list