On 18/05/01 (火) 17:43, Jesper Dangaard Brouer wrote:
On Tue, 1 May 2018 17:02:34 +0900
Toshiaki Makita wrote:
On 2018/05/01 16:50, Jesper Dangaard Brouer wrote:
On Tue, 24 Apr 2018 23:39:18 +0900
Toshiaki Makita wrote:
+static int veth_xdp_enqueue(struct veth_priv *priv, void *ptr)
+{
+
On Tue, 1 May 2018 17:02:34 +0900
Toshiaki Makita wrote:
> On 2018/05/01 16:50, Jesper Dangaard Brouer wrote:
> > On Tue, 24 Apr 2018 23:39:18 +0900
> > Toshiaki Makita wrote:
> >
> >> +static int veth_xdp_enqueue(struct veth_priv *priv, void *ptr)
> >> +{
> >> + if (unlikely(ptr_ring_produc
On 2018/05/01 16:50, Jesper Dangaard Brouer wrote:
> On Tue, 24 Apr 2018 23:39:18 +0900
> Toshiaki Makita wrote:
>
>> +static int veth_xdp_enqueue(struct veth_priv *priv, void *ptr)
>> +{
>> +if (unlikely(ptr_ring_produce(&priv->xdp_ring, ptr)))
>> +return -ENOSPC;
>> +
>> +re
On Tue, 24 Apr 2018 23:39:18 +0900
Toshiaki Makita 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'
From: Toshiaki Makita
In order to avoid stack inflation by recursive XDP program call from
ndo_xdp_xmit, this change introduces NAPI in veth.
Add veth's own NAPI handler when XDP is enabled.
Use ptr_ring to emulate NIC ring. Tx function enqueues packets to the
ring and peer NAPI handler drains t