When refactoring a large router we uncovered a problem with some of the schedulers in click. The problem is easy to reproduce e.g.
PrioSched -> Discard; or RoundRobinSched -> Discard result in click running at 100% CPU. Since the upstream Discard (or in our case unqueue) will never find an upstream empty signal it seems to never go to sleep. Off course this is a trivial example and one would probably not write it to begin with. On the other hand, we were removing the scheduler from the script and a line similar to the one above, was mistakenly not removed. The fix is pretty straightforward as it is sufficient to modify the PrioSched or RoundRobinSched to take "1-/1" as the port_count return value and not "-/1" as it is now. It seems rather unnecessary to be able to define schedulers with no inputs at all. Regards, Bart & Michael ------------------------- IBBT - PATS research group Dept. of Mathematics and Computer Sciences University of Antwerp Campus Middelheim, G3.30 Middelheimlaan 1 B-2020 Antwerpen, Belgium Phone: +32 (0)3 265.32.91 Fax: +32 (0)3 265.37.77 Web: www.pats.ua.ac.be/michael.voorhaen _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
