tc stack overflow

From: Thomas Heinz <hidden>
Date: 2003-07-05 22:07:50
Also in: lkml

Hi

Have you already crashed your kernel today? No? Well, try this one:

# tc qdisc add dev eth0 root handle 1: prio \
   for i in `seq 500` ; do tc qdisc add dev eth0 \
       parent $i:1 handle `expr $i + 1`: prio ; done ; \
   ping 1.2.3.4

[replace eth0 by a device of your choice]


I think some of you are aware of the problem but strangely I didn't
find any mention on linux-kernel or linux-netdev or lartc.

The problem is that the depth of the classification tree is not limited
in any way and since for every qdisc the corresponding enqueue function
is called we have a stack overflow here.

IMO the problem could be fixed by adding a depth parameter to the
enqueue function. This way the function can decide whether it is save
to go deeper down the tree (maybe subject to a global policy).

So, what do you think about the issue? Do you care?


Regards,

Thomas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help