Hello!

> 1. When another outgoing packet comes down from higher level protocols and
> hard_start_xmit calls qdisc_wakeup. But then only one packet is sent out
> by qdisc_wakeup, so this does not empty the queue.

Yes.

> 2. When an incoming packet generates an interrupt and qdisc_run_queues is
> called from net_bh, therefore emptying the outgoing queue.

Yes. Plus grep for mark_bh(NET_BH) in device drivers, it will reduce
your doubts.

> But what if no incoming packets are forthcoming? I don't see how the
> outgoing queue can be emptied. 

Devices wake up net_bh, when they complete transmission.

However, you are right partially. It is known "feature" that
the most of drivers do not tell anyone when completing sending a frame.
It is bug, however the experience of with the past linux kernels showed
that it does not affect real behaviour, but its naive fixing in core results
in lots of additional work, not required in real life cases.
If you really have any signs of misbehaviour because of this reason,
I am ready to help.

Alexey
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to