diff mbox series

[net-next] net: sched: pie: avoid slow division in drop probability decay

Message ID 20190228123654.26330-1-lesliemonis@gmail.com
State Accepted
Delegated to: David Miller
Headers show
Series [net-next] net: sched: pie: avoid slow division in drop probability decay | expand

Commit Message

Leslie Monis Feb. 28, 2019, 12:36 p.m. UTC
As per RFC 8033, it is sufficient for the drop probability
decay factor to have a value of (1 - 1/64) instead of 98%.
This avoids the need to do slow division.

Suggested-by: David Laight <David.Laight@aculab.com>
Signed-off-by: Leslie Monis <lesliemonis@gmail.com>
---
 net/sched/sch_pie.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

David Miller Feb. 28, 2019, 6:35 p.m. UTC | #1
From: Leslie Monis <lesliemonis@gmail.com>
Date: Thu, 28 Feb 2019 18:06:54 +0530

> As per RFC 8033, it is sufficient for the drop probability
> decay factor to have a value of (1 - 1/64) instead of 98%.
> This avoids the need to do slow division.
> 
> Suggested-by: David Laight <David.Laight@aculab.com>
> Signed-off-by: Leslie Monis <lesliemonis@gmail.com>

Applied.
diff mbox series

Patch

diff --git a/net/sched/sch_pie.c b/net/sched/sch_pie.c
index f93cfe034c72..1cc0c7b74aa3 100644
--- a/net/sched/sch_pie.c
+++ b/net/sched/sch_pie.c
@@ -429,7 +429,8 @@  static void calculate_probability(struct Qdisc *sch)
 	 */
 
 	if (qdelay == 0 && qdelay_old == 0 && update_prob)
-		q->vars.prob = 98 * div_u64(q->vars.prob, 100);
+		/* Reduce drop probability to 98.4% */
+		q->vars.prob -= q->vars.prob / 64u;
 
 	q->vars.qdelay = qdelay;
 	q->vars.qlen_old = qlen;