• Eric Dumazet's avatar
    pkt_sched: fq: fix pacing for small frames · d902e2c3
    Eric Dumazet authored
    [ Upstream commit f52ed899 ]
    
    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: afe4fd06 ("pkt_sched: fq: Fair Queue packet scheduler")
    Signed-off-by: default avatarEric 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: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    d902e2c3
sch_fq.c 19.4 KB