[ovs-dev] [PATCH] netdev-afxdp: Fix transmission freeze in native mode without zerocopy.

William Tu u9012063 at gmail.com
Mon Jan 6 20:01:44 UTC 2020


On Mon, Jan 06, 2020 at 11:52:43AM -0800, William Tu wrote:
> On Sun, Jan 05, 2020 at 01:51:19AM +0100, Ilya Maximets wrote:
> > Kernel uses 'xsk_generic_xmit()' for all modes where zerocopy is
> > not enabled:
> > 
> >    net/xdp/xsk.c
> >    433  static int __xsk_sendmsg(struct sock *sk)
> >    434  {
> >             ...
> >    442      return xs->zc ? xsk_zc_xmit(xs) : xsk_generic_xmit(sk);
> >    443  }
> > 
> > 'xsk_generic_xmit ()' sends packets synchronously and no more than 16
> > packets at a time.  This means that we have to kick Tx with sendmsg()
> > for every 16 packets in simple native mode too, otherwise the packets
> > may never be sent.
> > 
> > Reported-by: William Tu <u9012063 at gmail.com>
> > Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2019-November/365076.html
> > Fixes: e8f5634484e8 ("netdev-afxdp: Best-effort configuration of XDP mode.")
> > Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
> > ---
> 
> Thanks Yifeng and Ilya for the patch!
> It took me a while and I couln't fix it.
> I applied to master, and branch 2.12.
> 

Actually the branch-2.12 does not have
e8f5634484e8 ("netdev-afxdp: Best-effort configuration of XDP mode.")

So it only support copy mode and zerocopy mode, this bug
won't happen. There is no need to backport.

William


More information about the dev mailing list