linux/net/sched
Eric Dumazet f52ed89971 pkt_sched: fq: fix pacing for small frames
For performance reasons, sch_fq tried hard to not setup timers for every
sent packet, using a quantum based heuristic : A delay is setup only if
the flow exhausted its credit.

Problem is that application limited flows can refill their credit
for every queued packet, and they can evade pacing.

This problem can also be triggered when TCP flows use small MSS values,
as TSO auto sizing builds packets that are smaller than the default fq
quantum (3028 bytes)

This patch adds a 40 ms delay to guard flow credit refill.

Fixes: afe4fd0624 ("pkt_sched: fq: Fair Queue packet scheduler")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Maciej Żenczykowski <maze@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-11-15 21:01:52 -05:00
..
Kconfig net: sched: cls_bpf: add BPF-based classifier 2013-10-29 17:33:17 -04:00
Makefile net: sched: cls_bpf: add BPF-based classifier 2013-10-29 17:33:17 -04:00
act_api.c
act_csum.c act_csum: fix possible use after free 2013-04-12 15:25:41 -04:00
act_gact.c
act_ipt.c net_sched: act_ipt forward compat with xtables 2013-05-01 13:19:19 -04:00
act_mirred.c net: pass info struct via netdevice notifier 2013-05-28 13:11:01 -07:00
act_nat.c
act_pedit.c
act_police.c net_sched: add u64 rate to psched_ratecfg_precompute() 2013-09-20 14:41:02 -04:00
act_simple.c
act_skbedit.c
cls_api.c net_cls: remove duplicated include from cls_api.c 2013-04-07 17:12:01 -04:00
cls_basic.c qdisc: basic classifier - remove unnecessary initialization 2013-09-30 15:47:43 -04:00
cls_bpf.c net: sched: cls_bpf: add BPF-based classifier 2013-10-29 17:33:17 -04:00
cls_cgroup.c cgroup: cls: remove unnecessary task_cls_classid 2013-10-08 16:27:34 -04:00
cls_flow.c netlink: rename ssk to sk in struct netlink_skb_params 2013-04-19 14:57:56 -04:00
cls_fw.c pkt_sched: fix error return code in fw_change_attrs() 2013-04-19 17:34:53 -04:00
cls_route.c
cls_rsvp.c
cls_rsvp.h
cls_rsvp6.c
cls_tcindex.c
cls_u32.c
em_canid.c
em_cmp.c
em_ipset.c em_ipset: use dev_net() accessor 2013-10-18 16:23:06 -04:00
em_meta.c qdisc: meta return ENOMEM on alloc failure 2013-09-30 15:47:43 -04:00
em_nbyte.c
em_text.c
em_u32.c
ematch.c
sch_api.c net_sched: increment drop counters in qdisc_tree_decrease_qlen() 2013-10-08 16:27:33 -04:00
sch_atm.c net_sched: info leak in atm_tc_dump_class() 2013-07-31 15:04:19 -07:00
sch_blackhole.c
sch_cbq.c net_sched: Fix stack info leak in cbq_dump_wrr(). 2013-07-30 00:16:21 -07:00
sch_choke.c treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks 2013-08-20 13:06:40 +02:00
sch_codel.c
sch_drr.c net_sched: add 64bit rate estimators 2013-06-11 02:51:03 -07:00
sch_dsmark.c
sch_fifo.c
sch_fq.c pkt_sched: fq: fix pacing for small frames 2013-11-15 21:01:52 -05:00
sch_fq_codel.c
sch_generic.c net: Add layer 2 hardware acceleration operations for macvlan devices 2013-11-07 19:11:41 -05:00
sch_gred.c
sch_hfsc.c net_sched: add 64bit rate estimators 2013-06-11 02:51:03 -07:00
sch_htb.c net_sched: htb: support of 64bit rates 2013-09-20 14:41:03 -04:00
sch_ingress.c
sch_mq.c qdisc: allow setting default queuing discipline 2013-08-31 00:32:32 -04:00
sch_mqprio.c qdisc: allow setting default queuing discipline 2013-08-31 00:32:32 -04:00
sch_multiq.c
sch_netem.c netem: markov loss model transition fix 2013-10-25 19:03:39 -04:00
sch_plug.c
sch_prio.c
sch_qfq.c pkt_sched: sch_qfq: remove a source of high packet delay/jitter 2013-07-18 13:02:00 -07:00
sch_red.c
sch_sfb.c
sch_sfq.c
sch_tbf.c net_sched: tbf: support of 64bit rates 2013-11-09 14:53:37 -05:00
sch_teql.c