aboutsummaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorEric Dumazet <[email protected]>2016-05-01 16:47:26 -0700
committerDavid S. Miller <[email protected]>2016-05-03 12:47:09 -0400
commit9d18562a227874289fda8ca5d117d8f503f1dcca (patch)
treec00c1688e73773f12f3071998bcf20679695dc8e /tools/perf/scripts/python
parent094e43d50d7e421e9036d72a5a1d93c250cdbf0a (diff)
fq_codel: add batch ability to fq_codel_drop()
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 <[email protected]> Reported-by: Dave Taht <[email protected]> Cc: Jonathan Morton <[email protected]> Acked-by: Jesper Dangaard Brouer <[email protected]> Acked-by: Dave Taht Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions