Patchwork [1/6] pkt_sched: sch_htb: Consider used jiffies in htb_do_events()

login
register
mail settings
Submitter Jarek Poplawski
Date Dec. 9, 2008, 10:21 a.m.
Message ID <20081209102103.GA14862@ff.dom.local>
Download mbox | patch
Permalink /patch/12906/
State Changes Requested
Delegated to: David Miller
Headers show

Comments

Jarek Poplawski - Dec. 9, 2008, 10:21 a.m.
Next event time should consider jiffies used for recounting. Otherwise
qdisc_watchdog_schedule() triggers hrtimer immediately with the event
in the past, and may cause very high ksoftirqd cpu usage (if highres
is on).

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
---
 net/sched/sch_htb.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Patch

diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index f89fd71..d6eb4a7 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -685,8 +685,8 @@  static psched_time_t htb_do_events(struct htb_sched *q, int level)
 		if (cl->cmode != HTB_CAN_SEND)
 			htb_add_to_wait_tree(q, cl, diff);
 	}
-	/* too much load - let's continue on next jiffie */
-	return q->now + PSCHED_TICKS_PER_SEC / HZ;
+	/* too much load - let's continue on next jiffie (including above) */
+	return q->now + 2 * PSCHED_TICKS_PER_SEC / HZ;
 }
 
 /* Returns class->node+prio from id-tree where classe's id is >= id. NULL