浏览代码

net sched: cleanup and rate limit warning

If the user has a bad classification configuration, and gets a packet
that goes through too many steps. Chances are more packets will arrive,
and the message spew will overrun syslog because it is not rate limited.
And because it is not tagged with appropriate priority it can't not be screened.

Added the qdisc to the message to try and give some more context when
the message does arrive.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
stephen hemminger 15 年之前
父节点
当前提交
b60b6592ba
共有 1 个文件被更改,包括 6 次插入3 次删除
  1. 6 3
      net/sched/sch_api.c

+ 6 - 3
net/sched/sch_api.c

@@ -1637,9 +1637,12 @@ reclassify:
 		tp = otp;
 		tp = otp;
 
 
 		if (verd++ >= MAX_REC_LOOP) {
 		if (verd++ >= MAX_REC_LOOP) {
-			printk("rule prio %u protocol %02x reclassify loop, "
-			       "packet dropped\n",
-			       tp->prio&0xffff, ntohs(tp->protocol));
+			if (net_ratelimit())
+				printk(KERN_NOTICE
+				       "%s: packet reclassify loop"
+					  " rule prio %u protocol %02x\n",
+				       tp->q->ops->id,
+				       tp->prio & 0xffff, ntohs(tp->protocol));
 			return TC_ACT_SHOT;
 			return TC_ACT_SHOT;
 		}
 		}
 		skb->tc_verd = SET_TC_VERD(skb->tc_verd, verd);
 		skb->tc_verd = SET_TC_VERD(skb->tc_verd, verd);