[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20160503.124726.444969937520899163.davem@davemloft.net>
Date: Tue, 03 May 2016 12:47:26 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: eric.dumazet@...il.com
Cc: netdev@...r.kernel.org, dave.taht@...il.com, chromatix99@...il.com
Subject: Re: [PATCH net-next] fq_codel: add batch ability to fq_codel_drop()
From: Eric Dumazet <eric.dumazet@...il.com>
Date: Sun, 01 May 2016 16:47:26 -0700
> From: Eric Dumazet <edumazet@...gle.com>
>
> 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 dropping a single packet, try to drop 50% of the backlog
> of this fat flow, with a configurable limit of 64 packets per round.
>
> TCA_FQ_CODEL_DROP_BATCH_SIZE is the new attribute to make this
> limit configurable.
>
> With this strategy the 4 KB search is amortized to a single cache line
> per drop [1], so fq_codel_drop() no longer appears at the top of kernel
> profile in presence of few inelastic flows.
>
> [1] Assuming a 64byte cache line, and 1024 buckets
>
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
> Reported-by: Dave Taht <dave.taht@...il.com>
> Cc: Jonathan Morton <chromatix99@...il.com>
Applied, thanks Eric.
Powered by blists - more mailing lists