summaryrefslogtreecommitdiffstats
path: root/net/sched/sch_htb.c
diff options
context:
space:
mode:
authorJarek Poplawski2009-02-01 10:13:05 +0100
committerDavid S. Miller2009-02-01 10:13:05 +0100
commite82181de5ef4648074765912d2d82d6bd60115eb (patch)
treef977e4d099c2df0ba78da1fa6d47d13ba70cfb09 /net/sched/sch_htb.c
parentpkt_sched: sch_hfsc: sch_htb: Add non-work-conserving warning handler. (diff)
downloadkernel-qcow2-linux-e82181de5ef4648074765912d2d82d6bd60115eb.tar.gz
kernel-qcow2-linux-e82181de5ef4648074765912d2d82d6bd60115eb.tar.xz
kernel-qcow2-linux-e82181de5ef4648074765912d2d82d6bd60115eb.zip
pkt_sched: sch_htb: Warn on too many events.
Let's get some info on possible config problems. This patch brings back an old warning, but is printed only once now. With feedback from Patrick McHardy <kaber@trash.net> Signed-off-by: Jarek Poplawski <jarkao2@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_htb.c')
-rw-r--r--net/sched/sch_htb.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index 77ff510ef8ac..826f92145261 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -153,6 +153,9 @@ struct htb_sched {
int direct_qlen; /* max qlen of above */
long direct_pkts;
+
+#define HTB_WARN_TOOMANYEVENTS 0x1
+ unsigned int warned; /* only one warning */
};
/* find class in global hash table using given handle */
@@ -685,6 +688,10 @@ static psched_time_t htb_do_events(struct htb_sched *q, int level,
htb_add_to_wait_tree(q, cl, diff);
}
/* too much load - let's continue on next jiffie (including above) */
+ if (!(q->warned & HTB_WARN_TOOMANYEVENTS)) {
+ printk(KERN_WARNING "htb: too many events!\n");
+ q->warned |= HTB_WARN_TOOMANYEVENTS;
+ }
return q->now + 2 * PSCHED_TICKS_PER_SEC / HZ;
}