From: Eric Dumazet
Date: Sun, 01 May 2016 16:47:26 -0700
> From: Eric Dumazet
>
> In presence of inelastic flows and stress, we can call
> fq_codel_drop() for every packet entering fq_codel qdisc.
>
> fq_codel_drop() is quite expensive, as it does a linear scan
> of 4 KB of memory to find a fa
I have duplicated the issue on my own hardware. I would like to
explore also upping the codel count in this scenario at some point,
but:
Acked-by: Dave Taht
On Mon, 02 May 2016 09:12:51 -0700
Eric Dumazet 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. E
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
On Mon, 02 May 2016 07:34:28 -0700
Eric Dumazet wrote:
> On Mon, 2016-05-02 at 09:49 +0200, Jesper Dangaard Brouer wrote:
>
> > What about using bulk free of SKBs here?
> >
> > There is a very high probability that we are hitting SLUB slowpath,
> > which involves an expensive locked cmpxchg_dou
On Mon, 2016-05-02 at 09:49 +0200, Jesper Dangaard Brouer wrote:
> What about using bulk free of SKBs here?
>
> There is a very high probability that we are hitting SLUB slowpath,
> which involves an expensive locked cmpxchg_double per packet. Instead
> we can amortize this cost via kmem_cache_f
On Sun, 01 May 2016 16:47:26 -0700
Eric Dumazet wrote:
> From: Eric Dumazet
>
> In presence of inelastic flows and stress, we can call
> fq_codel_drop() for every packet entering fq_codel qdisc.
>
> fq_codel_drop() is quite expensive, as it does a linear scan
> of 4 KB of memory to find a fat
From: Eric Dumazet
In presence of inelastic flows and stress, we can call
fq_codel_drop() for every packet entering fq_codel qdisc.
fq_codel_drop() is quite expensive, as it does a linear scan
of 4 KB of memory to find a fat flow.
Once found, it drops the oldest packet of this flow.
Instead of