OSDN Git Service

net: sched: pie: change tc_pie_xstats->prob
authorLeslie Monis <lesliemonis@gmail.com>
Mon, 9 Mar 2020 19:10:33 +0000 (00:40 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 10 Mar 2020 01:05:55 +0000 (18:05 -0700)
Commit 105e808c1da2 ("pie: remove pie_vars->accu_prob_overflows")
changes the scale of probability values in PIE from (2^64 - 1) to
(2^56 - 1). This affects the precision of tc_pie_xstats->prob in
user space.

This patch ensures user space is unaffected.

Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Leslie Monis <lesliemonis@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_pie.c

index f52442d..c65077f 100644 (file)
@@ -493,7 +493,7 @@ static int pie_dump_stats(struct Qdisc *sch, struct gnet_dump *d)
 {
        struct pie_sched_data *q = qdisc_priv(sch);
        struct tc_pie_xstats st = {
-               .prob           = q->vars.prob,
+               .prob           = q->vars.prob << BITS_PER_BYTE,
                .delay          = ((u32)PSCHED_TICKS2NS(q->vars.qdelay)) /
                                   NSEC_PER_USEC,
                .packets_in     = q->stats.packets_in,