It only makes a few calls to `tc`:
rebecca:~# grep TC /home/jasonb/src/tc-graph.pl
$BIN_TC="/sbin/tc";
my @qdisc=`$BIN_TC -d qdisc show dev $DEV`;
my @class=`$BIN_TC -d class show dev $DEV`;
@filter=`$BIN_TC -d filter show dev $DEV parent $parent`;
But something ultimately Oopses:
rebecca:~# uname -a
Linux rebecca 2.6.6 #1 Thu May 20 17:21:44 EDT 2004 i686 GNU/Linux
faith:~# gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.3/specs
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared
--with-system-zlib --enable-nls --without-included-gettext
--enable-__cxa_atexit --enable-clocale=gnu --enable-debug
--enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.3 (Debian 20040401)
I also have Layer7-Kernel v0.7 patch applied to my kernel.
HTB init, kernel part version 3.16
htb: class 10090 isn''t work conserving ?!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
00000000
*pde = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<00000000>] Not tainted
EFLAGS: 00010246 (2.6.6)
EIP is at 0x0
eax: 00000000 ebx: c61d9600 ecx: 00000002 edx: c88277c0
esi: 00000000 edi: c6669144 ebp: c757c664 esp: c6181bd0
ds: 007b es: 007b ss: 0068
Process tc (pid: 960, threadinfo=c6180000 task=c67ea150)
Stack: c0228d44 c3e54148 00000000 00001000 c013e0ca c61bd91c c78f3cc4 c61bd864
c61bd85c c88277c0 00000000 c3e54148 c1135400 c61d9600 00000f60 c0215f47
00001000 000000d0 c40e42e0 00000000 c40e42e0 c40e42e0 c61d9600 00000000
Call Trace:
[<c0228d44>] tc_dump_tfilter+0xb4/0x260
[<c013e0ca>] __vma_link+0x3a/0xa0
[<c0215f47>] alloc_skb+0x47/0xf0
[<c022a539>] netlink_dump+0x59/0x1b0
[<c022a737>] netlink_dump_start+0xa7/0xf0
[<c0222bff>] rtnetlink_rcv+0x34f/0x390
[<c0228c90>] tc_dump_tfilter+0x0/0x260
[<c02228a0>] rtnetlink_done+0x0/0x10
[<c01bcd2e>] copy_to_user+0x3e/0x50
[<c022a3ba>] netlink_data_ready+0x5a/0x70
[<c0229a43>] netlink_sendskb+0xa3/0xb0
[<c022a042>] netlink_sendmsg+0x212/0x310
[<c0212948>] sock_sendmsg+0x98/0xd0
[<c01bcd82>] copy_from_user+0x42/0x70
[<c01bcd82>] copy_from_user+0x42/0x70
[<c0217c4c>] verify_iovec+0x3c/0xa0
[<c02141cf>] sys_sendmsg+0x18f/0x1f0
[<c013d106>] do_no_page+0x196/0x320
[<c013d470>] handle_mm_fault+0xe0/0x150
[<c0114c4c>] do_page_fault+0x12c/0x530
[<c01bcd82>] copy_from_user+0x42/0x70
[<c0214672>] sys_socketcall+0x242/0x260
[<c0114b20>] do_page_fault+0x0/0x530
[<c01060b9>] error_code+0x2d/0x38
[<c0105eaf>] syscall_call+0x7/0xb
Code: Bad EIP value.
`tc` configuration:
tc qdisc add dev eth0 root handle 1: htb default 90
tc class add dev eth0 parent 1: classid 1:1 htb rate 160kbit ceil 160kbit
tc class add dev eth0 parent 1:1 classid 1:90 htb rate 160kbit ceil 160kbit
tc qdisc add dev eth0 parent 1:90 handle 2: prio bands 4
tc qdisc add dev eth0 parent 2:1 handle 10: sfq perturb 20
tc qdisc add dev eth0 parent 2:2 handle 20: sfq perturb 20
tc qdisc add dev eth0 parent 2:3 handle 30: sfq perturb 20
tc qdisc add dev eth0 parent 2:4 handle 40: tbf rate 152kbit buffer 1600 limit
3000
Afterwards, `tc` always hangs. Even `ifconfig` hangs. The box has to be
toggled manually to bring it back.
Thoughts anyone?
Thanks.
--
Jason Boxman
Perl Programmer / *NIX Systems Administrator
Shimberg Center for Affordable Housing | University of Florida
http://edseek.com/ - Linux and FOSS stuff
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/