• Eric Dumazet's avatar
    net_sched: gen_estimator: fix scaling error in bytes/packets samples · ca558e18
    Eric Dumazet authored
    Denys reported wrong rate estimations with HTB classes.
    
    It appears the bug was added in linux-4.10, since my tests
    where using intervals of one second only.
    
    HTB using 4 sec default rate estimators, reported rates
    were 4x higher.
    
    We need to properly scale the bytes/packets samples before
    integrating them in EWMA.
    
    Tested:
     echo 1 >/sys/module/sch_htb/parameters/htb_rate_est
    
     Setup HTB with one class with a rate/cail of 5Gbit
    
     Generate traffic on this class
    
     tc -s -d cl sh dev eth0 classid 7002:11
    class htb 7002:11 parent 7002:1 prio 5 quantum 200000 rate 5Gbit ceil
    5Gbit linklayer ethernet burst 80000b/1 mpu 0b cburst 80000b/1 mpu 0b
    level 0 rate_handle 1
     Sent 1488215421648 bytes 982969243 pkt (dropped 0, overlimits 0
    requeues 0)
     rate 5Gbit 412814pps backlog 136260b 2p requeues 0
     TCP pkts/rtx 982969327/45 bytes 1488215557414/68130
     lended: 22732826 borrowed: 0 giants: 0
     tokens: -1684 ctokens: -1684
    
    Fixes: 1c0d32fd ("net_sched: gen_estimator: complete rewrite of rate estimators")
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Reported-by: default avatarDenys Fedoryshchenko <nuclearcat@nuclearcat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ca558e18
gen_estimator.c 6.95 KB