On Mon, 02 May 2016 09:12:51 -0700
Eric Dumazet <eric.duma...@gmail.com> wrote:

> On Mon, 2016-05-02 at 18:00 +0200, Jesper Dangaard Brouer wrote:
> 
> > It is not that complicated, inside kfree_skb_list(), we just call
> > skb_release_all(skb) on each SKB first, and then bulk free the SKB's
> > themselves in the end.  Example see, _kfree_skb_defer().
> > 
> > The question is where to store the SKB array needed by kmem_cache_free_bulk.
> > 
> > The easy option is just to use the stack of kfree_skb_list(), but we
> > have to be careful about the stack size, it might not be so good
> > because skb_release_all() can be deep and via skb_release_data() invoke
> > kfree_skb_list() a second time.
> >   
> 
> It sounds you are reinventing the wheel ;)
> 
> If drivers use napi_consume_skb(), qdisc should be able to use it the
> same, since BH are disabled in their ->enqueue()/->dequeue() handlers.

Oh, yes. That is true, we can just use napi_consume_skb().  Should we
have a napi_kfree_skb(), to get the trace_kfree_skb() correct?

> This would be a separate patch of course.
> 
> This fq_codel fix might need to be backported.

Agreed.  I ACK your patch.

Acked-by: Jesper Dangaard Brouer <bro...@redhat.com>

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  Author of http://www.iptv-analyzer.org
  LinkedIn: http://www.linkedin.com/in/brouer

Reply via email to