On Tue, 1 May 2018 17:02:34 +0900 Toshiaki Makita <makita.toshi...@lab.ntt.co.jp> wrote:
> On 2018/05/01 16:50, Jesper Dangaard Brouer wrote: > > On Tue, 24 Apr 2018 23:39:18 +0900 > > Toshiaki Makita <toshiaki.maki...@gmail.com> wrote: > > > >> +static int veth_xdp_enqueue(struct veth_priv *priv, void *ptr) > >> +{ > >> + if (unlikely(ptr_ring_produce(&priv->xdp_ring, ptr))) > >> + return -ENOSPC; > >> + > >> + return 0; > >> +} > > > > Here we have a lock per (enqueued) packet. I'm working on changing the > > ndo_xdp_xmit API to allow bulking. And the tun driver have exact same > > issue/need. > > Probably I should have noted in commitlog, but this per-packet lock is > removed in patch 9. > I'm curious about if any change is needed by your new API. Again, I'm just moving this into the generic code, to avoid having to implement this for every driver. Plus, with CONFIG_RETPOLINE we have the advantage of only calling ndo_xdp_xmit once (indirect function pointer call). -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer