Re: Task queue makes slow device even slower

Werner Almesberger (almesber@lrc.di.epfl.ch)
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/