<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7638.1">
<TITLE>Re: [LARTC] Adding qdiscs crashes kernel??</TITLE>
</HEAD>
<BODY>
<DIV id=idOWAReplyText12663 dir=ltr>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>><FONT
face="Times New Roman">Please always report bugs to <A
href="mailto:netdev@vger.kernel.org">netdev@vger.kernel.org</A>.</FONT><BR></FONT></DIV>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>Not entirely sure it's a bug
yet. </FONT></DIV>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2> </DIV></FONT></DIV>
<DIV dir=ltr>><FONT size=2>Which qdisc add crashes it? Please post the full
oops.</FONT><BR></DIV>
<DIV dir=ltr>I don't get an oops. Just a completely unresponsive system.</DIV>
<DIV dir=ltr> </DIV>
<DIV dir=ltr>It's not terribly consistent. It's always one of these:</DIV>
<DIV dir=ltr> </DIV>
<DIV dir=ltr><FONT size=2> tc qdisc add dev eth2 parent 1:1 handle 2: cbq
bandwidth 100Mbit avpkt 1000 cell 8<BR> tc qdisc add dev eth3
parent 1:1 handle 2: cbq bandwidth 100Mbit avpkt 1000 cell
8</FONT><BR><BR>But there's no telling which.</DIV>
<DIV dir=ltr> </DIV>
<DIV dir=ltr>Leigh.</DIV>
<DIV dir=ltr>
<HR tabIndex=-1>
</DIV>
<DIV dir=ltr><FONT face=Tahoma size=2><B>From:</B> Patrick McHardy
[mailto:kaber@trash.net]<BR><B>Sent:</B> Wed 5/12/2007 7:07 PM<BR><B>To:</B>
Leigh Sharpe<BR><B>Cc:</B> lartc@mailman.ds9a.nl; Linux Netdev
List<BR><B>Subject:</B> Re: [LARTC] Adding qdiscs crashes
kernel??<BR></FONT><BR></DIV>
<DIV>
<P><FONT size=2>Please always report bugs to
netdev@vger.kernel.org.<BR><BR>Leigh Sharpe wrote:<BR>> Oh,<BR>> kernel
version 2.6.23, since I forgot to mention it.<BR>> <BR>>
Leigh.<BR>><BR>> ________________________________<BR>><BR>> From:
lartc-bounces@mailman.ds9a.nl<BR>> [<A
href="mailto:lartc-bounces@mailman.ds9a.nl">mailto:lartc-bounces@mailman.ds9a.nl</A>]
On Behalf Of Leigh Sharpe<BR>> Sent: Wednesday, 5 December 2007 3:37
PM<BR>> To: lartc@mailman.ds9a.nl<BR>> Subject: [LARTC] Adding qdiscs
crashes kernel??<BR>><BR>><BR>> Hi all,<BR>> I'm having some
problems setting up qdiscs on a bridge.The config looks<BR>> a little like
this:<BR>> <BR>> <BR>> ifconfig ifb0
up # Bring up the IFB for this
bridge.<BR>> tc qdisc add dev eth2 ingress<BR>> tc qdisc add dev eth3
ingress<BR>> tc qdisc add dev ifb0 root handle 1:0 cbq bandwidth 100Mbit
avpkt 1000<BR>> cell 8<BR>> # Raw qdiscs on each bridge port<BR>> tc
qdisc add dev eth2 root handle 1:0 cbq bandwidth 100Mbit avpkt 1000<BR>> cell
8<BR>> tc qdisc add dev eth3 root handle 1:0 cbq bandwidth 100Mbit avpkt
1000<BR>> cell 8<BR>><BR>> tc filter add dev eth2 parent 1: protocol
0x8100 prio 5 u32 match u16<BR>> 3000 0x0fff at 0 flowid 1:1 action ipt -j
MARK --or-mark 0x01000000 #<BR>> mark packets for VLAN 3000.<BR>> tc
filter add dev eth3 parent 1: protocol 0x8100 prio 5 u32 match u16<BR>> 3000
0x0fff at 0 flowid 1:1 action ipt -j MARK --or-mark 0x01000000 #<BR>> mark
packets for VLAN 3000.<BR>> <BR>> tc class add dev eth2 parent 1:0
classid 1:1 cbq bandwidth 100Mbit rate<BR>> 2000Kbit weight 200Kbit prio 1
allot 1514 cell 8 maxburst 20 avpkt 1000<BR>> bounded
isolated # 2000 Kbit rate limit on entry
point.<BR>> tc class add dev eth3 parent 1:0 classid 1:1 cbq bandwidth
100Mbit rate<BR>> 2000Kbit weight 200Kbit prio 1 allot 1514 cell 8 maxburst
20 avpkt 1000<BR>> bounded isolated #
2000 Kbit rate limit on entry point.<BR>><BR>> tc qdisc add dev eth2
parent 1:1 handle 2: cbq bandwidth 100Mbit avpkt<BR>> 1000 cell
8<BR>> tc qdisc add dev eth3 parent 1:1 handle 2: cbq bandwidth 100Mbit
avpkt<BR>> 1000 cell 8<BR>> tc class add dev eth2 parent 2:0 classid 2:1
cbq bandwidth 100Mbit rate<BR>> 2000Kbit weight 200Kbit prio 2 allot 1514
cell 8 maxburst 20 avpkt 1000<BR>> sharing<BR>> tc filter add dev eth2
parent 2:0 protocol 0x8100 prio 2 u32 match u16<BR>> 3000 0x0fff at 0 flowid
2:1 action ipt -j MARK --or-mark 0x00100000<BR>> tc qdisc add dev eth2 parent
2:1 handle 3: cbq bandwidth 100Mbit avpkt<BR>> 1000 cell
8 <BR>> tc filter add dev eth2 parent 3:0 protocol 0x8100
prio 4 u32 match u32 0<BR>> 0 flowid
3:3
# Traffic<BR>> class 3 - catchall. Don't MARK further.<BR>> <BR>>
(There's lot's more, mostly a repeat of the above with different<BR>>
criteria.)<BR>> When I first boot the box, and apply the traffic shaping
before any<BR>> traffic flows, all is fine. However, if I apply this same
config whilst<BR>> the bridge is passing lots of traffic, it completely
crashes the box.<BR>> Everything freezes, I don't even get a kernel panic
message on the<BR>> console. Nothing responds and the only way to recover is
by a<BR>> power-cycle.<BR>> <BR>> If I take the link down on the
ethernet port (with ip link set ethx<BR>> down), apply the configs, and then
bring it back up again, all is OK.<BR>> Obviously, though, this isn't really
acceptable.<BR>> <BR>> It always crashes immediately after a 'tc
qdisc add...' line, but not<BR>> always in the same place. Are there any
known issues with adding qdiscs<BR>> whilst traffic is being queued on
it?<BR>> I've also tried it using HTB instead of CBQ, and I get the same
results.<BR>> <BR>> Anybody got any other ideas as to what might be
going on?<BR><BR><BR>Which qdisc add crashes it? Please post the full
oops.<BR><BR></FONT></P></DIV>
</BODY>
</HTML>