Messages in this thread | | | From | Werner Almesberger <> | Subject | Re: Task queue makes slow device even slower | Date | Thu, 28 Oct 1999 17:40:00 +0200 (MET DST) |
| |
kuznet@ms2.inr.ac.ru wrote: > 8) TBF and CBQ in 2.2 use all the available on networked box events > and, hence, perfect softtimer approach. It fails exactly when no events > different of timer are present. Unfortunately, it is common situation.
Hmm, I'm not sure if net_bh is the answer: the soft timers paper describes soft timer checks basically whenever we run BHs, plus soft timer checks on system call return (funny, I thought we did this ?), and on CPU idle. Unless I've overlooked something, TBF and CBQ are only invoked if a) something requests a net_bh, or b) their own wakeup timer fires. b) is too infrequent for good shaping. a) depends on overall network activity - e.g. if the machine is waiting because of the network, this activity can drop.
So net_bh basically slows down when we're waiting. Correct ? In order to get better resolution, the equivalent of calling mark_bh(NET_BH) in qdisc_continue_run would be needed. Also, the equivalent of calling do_bottom_half from the idle loop, and possibly generally on system call return would be needed.
I write "equivalent", because I don't expect just making all of net_bh fire all the time, and going through possibly many qdiscs just to find out that it's still too early for the TBF/CBQ deep inside, would be very good performance-wise, so something more specialized would be needed.
Is this roughly the scenario you've tested ?
- Werner
-- _________________________________________________________________________ / Werner Almesberger, ICA, EPFL, CH werner.almesberger@ica.epfl.ch / /_IN_N_032__Tel_+41_21_693_6621__Fax_+41_21_693_6610_____________________/
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |