diff options
-rw-r--r-- | net/sched/sch_htb.c | 7 |
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 { | |||
153 | int direct_qlen; /* max qlen of above */ | 153 | int direct_qlen; /* max qlen of above */ |
154 | 154 | ||
155 | long direct_pkts; | 155 | long direct_pkts; |
156 | |||
157 | #define HTB_WARN_TOOMANYEVENTS 0x1 | ||
158 | unsigned int warned; /* only one warning */ | ||
156 | }; | 159 | }; |
157 | 160 | ||
158 | /* find class in global hash table using given handle */ | 161 | /* 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, | |||
685 | htb_add_to_wait_tree(q, cl, diff); | 688 | htb_add_to_wait_tree(q, cl, diff); |
686 | } | 689 | } |
687 | /* too much load - let's continue on next jiffie (including above) */ | 690 | /* too much load - let's continue on next jiffie (including above) */ |
691 | if (!(q->warned & HTB_WARN_TOOMANYEVENTS)) { | ||
692 | printk(KERN_WARNING "htb: too many events!\n"); | ||
693 | q->warned |= HTB_WARN_TOOMANYEVENTS; | ||
694 | } | ||
688 | return q->now + 2 * PSCHED_TICKS_PER_SEC / HZ; | 695 | return q->now + 2 * PSCHED_TICKS_PER_SEC / HZ; |
689 | } | 696 | } |
690 | 697 | ||