lkml.org 
[lkml]   [2018]   [Apr]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.15 165/189] sch_netem: Bug fixing in calculating Netem interval
    Date
    From: "Md. Islam" <mislam4@kent.edu>

    [ Upstream commit 043e337f555e610ad8237fd23522d97c968d72b9 ]

    In Kernel 4.15.0+, Netem does not work properly.

    Netem setup:

    tc qdisc add dev h1-eth0 root handle 1: netem delay 10ms 2ms

    Result:

    PING 172.16.101.2 (172.16.101.2) 56(84) bytes of data.
    64 bytes from 172.16.101.2: icmp_seq=1 ttl=64 time=22.8 ms
    64 bytes from 172.16.101.2: icmp_seq=2 ttl=64 time=10.9 ms
    64 bytes from 172.16.101.2: icmp_seq=3 ttl=64 time=10.9 ms
    64 bytes from 172.16.101.2: icmp_seq=5 ttl=64 time=11.4 ms
    64 bytes from 172.16.101.2: icmp_seq=6 ttl=64 time=11.8 ms
    64 bytes from 172.16.101.2: icmp_seq=4 ttl=64 time=4303 ms
    64 bytes from 172.16.101.2: icmp_seq=10 ttl=64 time=11.2 ms
    64 bytes from 172.16.101.2: icmp_seq=11 ttl=64 time=10.3 ms
    64 bytes from 172.16.101.2: icmp_seq=7 ttl=64 time=4304 ms
    64 bytes from 172.16.101.2: icmp_seq=8 ttl=64 time=4303 ms

    Patch:

    (rnd % (2 * sigma)) - sigma was overflowing s32. After applying the
    patch, I found following output which is desirable.

    PING 172.16.101.2 (172.16.101.2) 56(84) bytes of data.
    64 bytes from 172.16.101.2: icmp_seq=1 ttl=64 time=21.1 ms
    64 bytes from 172.16.101.2: icmp_seq=2 ttl=64 time=8.46 ms
    64 bytes from 172.16.101.2: icmp_seq=3 ttl=64 time=9.00 ms
    64 bytes from 172.16.101.2: icmp_seq=4 ttl=64 time=11.8 ms
    64 bytes from 172.16.101.2: icmp_seq=5 ttl=64 time=8.36 ms
    64 bytes from 172.16.101.2: icmp_seq=6 ttl=64 time=11.8 ms
    64 bytes from 172.16.101.2: icmp_seq=7 ttl=64 time=8.11 ms
    64 bytes from 172.16.101.2: icmp_seq=8 ttl=64 time=10.0 ms
    64 bytes from 172.16.101.2: icmp_seq=9 ttl=64 time=11.3 ms
    64 bytes from 172.16.101.2: icmp_seq=10 ttl=64 time=11.5 ms
    64 bytes from 172.16.101.2: icmp_seq=11 ttl=64 time=10.2 ms

    Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    net/sched/sch_netem.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
    index 2aeca57f9bd0..73c4bea821cb 100644
    --- a/net/sched/sch_netem.c
    +++ b/net/sched/sch_netem.c
    @@ -327,7 +327,7 @@ static s64 tabledist(s64 mu, s32 sigma,

    /* default uniform distribution */
    if (dist == NULL)
    - return (rnd % (2 * sigma)) - sigma + mu;
    + return ((rnd % (2 * sigma)) + mu) - sigma;

    t = dist->table[rnd % dist->size];
    x = (sigma % NETEM_DIST_SCALE) * t;
    --
    2.15.1
    \
     
     \ /
      Last update: 2018-04-09 05:40    [W:2.467 / U:0.160 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site