diff mbox series

[net-next] net: sched: pie: change tc_pie_xstats->prob

Message ID 20200309191033.2975-1-lesliemonis@gmail.com
State Accepted
Delegated to: David Miller
Headers show
Series [net-next] net: sched: pie: change tc_pie_xstats->prob | expand

Commit Message

Leslie Monis March 9, 2020, 7:10 p.m. UTC
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>
---
 net/sched/sch_pie.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jakub Kicinski March 9, 2020, 10:19 p.m. UTC | #1
On Tue, 10 Mar 2020 00:40:33 +0530 Leslie Monis wrote:
> 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>

Thanks, I was looking out for user space changes during review but it
was too hard to catch this until the iproute2 patch surfaced :(

I'd be good to post the user space changes along the kernel side.
iproute2 maintainers just wait for the kernel part to land in that case.
David Miller March 10, 2020, 1:06 a.m. UTC | #2
From: Leslie Monis <lesliemonis@gmail.com>
Date: Tue, 10 Mar 2020 00:40:33 +0530

> 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>

Applied, thanks.
diff mbox series

Patch

diff --git a/net/sched/sch_pie.c b/net/sched/sch_pie.c
index f52442d39bf5..c65077f0c0f3 100644
--- a/net/sched/sch_pie.c
+++ b/net/sched/sch_pie.c
@@ -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,