linux/include/uapi
Eric Dumazet 9d18562a22 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 <edumazet@google.com>
Reported-by: Dave Taht <dave.taht@gmail.com>
Cc: Jonathan Morton <chromatix99@gmail.com>
Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
Acked-by: Dave Taht
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-05-03 12:47:09 -04:00
..
asm-generic generic syscalls: wire up preadv2 and pwritev2 syscalls 2016-04-23 22:38:08 +02:00
drm Merge tag 'topic/drm-misc-2016-03-14' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-03-16 11:09:26 +10:00
linux fq_codel: add batch ability to fq_codel_drop() 2016-05-03 12:47:09 -04:00
misc cxl: Support to flash a new image on the adapter from a guest 2016-03-09 23:39:56 +11:00
mtd mtd: mtd-user: remove stdint.h include 2015-10-19 18:19:06 -07:00
rdma Merge branches 'i40iw', 'sriov' and 'hfi1' into k.o/for-4.6 2016-03-21 17:32:23 -04:00
scsi cxlflash: Fix to avoid virtual LUN failover failure 2016-01-06 20:50:08 -05:00
sound ALSA: seq: Provide card number / PID via sequencer client info 2016-03-08 10:52:52 +01:00
video
xen xen/gntdev: add ioctl for grant copy 2016-01-07 13:21:53 +00:00
Kbuild