I tried to run the script efcbq that comes with iproute2 official documentation(/usr/share/doc/iproute2/examples/diffserv/efcbq) on 2.4.19 kernel. #!/bin/sh # TC=tc DEV=dev\ eth0 $TC qdisc add $DEV handle 1:0 root dsmark indices 64 default_index 0 set_tc_index $TC filter add $DEV parent 1:0 protocol ip prio 1 tcindex mask 0xfc shift 2 $TC qdisc add $DEV parent 1:0 handle 2:0 cbq bandwidth 10Mbit cell 8 avpkt 1000 mpu 64 # # EF class # $TC class add $DEV parent 2:0 classid 2:1 cbq bandwidth 10Mbit rate 1500Kbit avpkt 1000 prio 1 bounded isolated allot 1514 weight 1 maxburst 10 # packet fifo for EF? $TC qdisc add $DEV parent 2:1 pfifo limit 5 $TC filter add $DEV parent 2:0 protocol ip prio 1 handle 0x2e tcindex classid 2:1 pass_on # # BE class # $TC class add $DEV parent 2:0 classid 2:2 cbq bandwidth 10Mbit rate 5Mbit avpkt 1000 prio 7 allot 1514 weight 1 maxburst 21 borrow split 2:0 defmap 0xffff $TC qdisc add $DEV parent 2:2 red limit 60KB min 15KB max 45KB burst 20 avpkt 1000 bandwidth 10Mbit probability 0.4 $TC filter add $DEV parent 2:0 protocol ip prio 2 handle 0 tcindex mask 0 classid 2:2 pass_on Then on executing tc qdisc del dev eth1 root handle 1:0 the kernel crashes. The kernel debug messages upto this stage were(using dmesg utility) tcindex_init(sch c21d4720,[qdisc c21d4780],opt c21d4250) dsmark_init: qdisc c21d4780 tcindex_init(tp c329d9e0) tcindex_get(tp c329d9e0,handle 0x00000000) tcindex_change(tp c329d9e0,handle 0x00000000,tca c1417d3c,arg c1417ca4),opt c315f9d0,p c18157e0,r 00000000 *arg = 0x0 classid/police 00000000/00000000 tcindex_dump(tp c329d9e0,fh 0x0,skb c11af8c0,t c31d2010),p c18157e0,r 00000000,b c31d2038 p->perfect 00000000 p->h 00000000 dsmark_get(sch c21d4720,[qdisc c21d4780],classid 10000) dsmark_get(sch c21d4720,[qdisc c21d4780],classid 10000) dsmark_graft(sch c21d4720,[qdisc c21d4780],new c31f6800,old c1417cc0) dsmark_walk(sch c21d4720,[qdisc c21d4780],walker c3b1fc44) dsmark_walk(sch c21d4720,[qdisc c21d4780],walker c3229c44) ndex_init(tp c329df20) tcindex_get(tp c329df20,handle 0x0000002e) tcindex_change(tp c329df20,handle 0x0000002e,tca c2c01d3c,arg c2c01ca4),opt c19c4af0,p c18156c0,r 00000000 *arg = 0x0 classid/police c19c4af4/00000000 hash 64 mask 65535 r=00000000 r=c2c01c3c tcindex_dump(tp c329df20,fh 0x0,skb c11af8c0,t c31d2010),p c18156c0,r 00000000,b c31d2038 p->perfect 00000000 p->h c315f9a0 ndex_dump(tp c329d9e0,fh 0x0,skb c11af8c0,t c31d2010),p c18157e0,r 00000000,b c31d2038 p->perfect 00000000 p->h 00000000 tcindex_walk(tp c329d9e0,walker c2c01c44),p c18157e0 dsmark_walk(sch c21d4720,[qdisc c21d4780],walker c2c71c44) dsmark_walk(sch c21d4720,[qdisc c21d4780],walker c2175c44) tcindex_init(tp c329d960) tcindex_get(tp c329d960,handle 0x00000000) tcindex_change(tp c329d960,handle 0x00000000,tca c2171d3c,arg c2171ca4),opt c315f8d0,p c18156e0,r 00000000 *arg = 0x0 classid/police c315f8dc/00000000 hash 1 mask 0 r=c1815680 tcindex_dump(tp c329d960,fh 0x0,skb c11af980,t c31d2010),p c18156e0,r 00000000,b c31d2038 p->perfect c1815680 p->h 00000000 If its an error in the command then HOWTO delete the queing discipline when dsmark is used as its the root qdisc with no associated class And if its a bug in the kernel then what is the workaround _________________________________________________________________ Chat with friends online, try MSN Messenger: http://messenger.msn.com _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
Werner Almesberger
2002-Oct-10 06:35 UTC
Re: FIXME:tc crashes when dsmark root qdisc deleted
amit jaiswal wrote:> DEV=dev\ eth0[...]> tc qdisc del dev eth1 root handle 1:0Is this really what you used ? If yes, what is configured on eth1 ? (I ran a few variations of this through tcsim+valgrind, and it didn''t act up.)> the kernel crashes. > The kernel debug messages upto this stage were(using dmesg utility)Nothing about the actual oops ? Can you please run the entire dmesg output through ksymoops ?> If its an error in the command then HOWTO delete the queing discipline when > dsmark is used as its the root qdisc with no associated class# tc qdisc del dev whatever root should be sufficient. - Werner -- _________________________________________________________________________ / Werner Almesberger, Buenos Aires, Argentina wa@almesberger.net / /_http://www.almesberger.net/____________________________________________/ _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/