| To: | "David S. Miller" <davem@xxxxxxxxxx> |
|---|---|
| Subject: | [PATCH] netem -- |
| From: | Stephen Hemminger <shemminger@xxxxxxxx> |
| Date: | Tue, 13 Jul 2004 15:19:59 -0700 |
| Cc: | netdev@xxxxxxxxxxx |
| In-reply-to: | <20040712101500.4a0babd3@xxxxxxxxxxxxxxxxxxxxx> |
| Organization: | Open Source Development Lab |
| References: | <20040712101500.4a0babd3@xxxxxxxxxxxxxxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
The netem scheduler needs to limit its delayed packet queue to prevent
a application burst from chewing up too much memory.
Signed-off-by: Stephen Hemminger <shemminger@xxxxxxxx>
diff -Nru a/net/sched/sch_netem.c b/net/sched/sch_netem.c
--- a/net/sched/sch_netem.c 2004-07-13 13:02:58 -07:00
+++ b/net/sched/sch_netem.c 2004-07-13 13:02:58 -07:00
@@ -643,11 +643,17 @@
PSCHED_TADD2(now, delay, cb->time_to_send);
/* Always queue at tail to keep packets in order */
- __skb_queue_tail(&q->delayed, skb);
- sch->q.qlen++;
- sch->stats.bytes += skb->len;
- sch->stats.packets++;
- return 0;
+ if (likely(q->delayed.qlen < q->limit)) {
+ __skb_queue_tail(&q->delayed, skb);
+ sch->q.qlen++;
+ sch->stats.bytes += skb->len;
+ sch->stats.packets++;
+ return 0;
+ }
+
+ sch->stats.drops++;
+ kfree_skb(skb);
+ return NET_XMIT_DROP;
}
/* Requeue packets but don't change time stamp */
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH] [sparse] ipv6 -- more 0 vs NULL, Stephen Hemminger |
|---|---|
| Next by Date: | Re: [PATCH 2.6]: Make packet scheduler clock source configurable, Patrick McHardy |
| Previous by Thread: | [PATCH] netem missing qdisc destroy, Stephen Hemminger |
| Next by Thread: | Re: [PATCH] netem --, David S. Miller |
| Indexes: | [Date] [Thread] [Top] [All Lists] |