Am Dienstag 24 Januar 2006 09:36 schrieb Zhu Yi:

> Two problems in ipw2200:
> 1. We now have the ieee_device->is_queue_full interface, and it will be
>    called at the beginning of ieee80211_xmit function. So no need to call
>    it at the driver xmit function.

This interface is totally broken. Actually this happens in ipw2200 since 
version 1.0.8:

-dev->hard_start_xmit() calls ieee80211_xmit()
-ieee80211_xmit() calls into ieee->is_queue_full() which is 
ipw_net_is_queue_full() for the ipw2200 driver. If this function indicates 
that the queue is full, ieee80211_xmit() returns NETDEV_TX_BUSY.
-On this return code, qdisc_restart() requeues the packet at the tail of leaf 
qdisc and immediatly reschedules output via netif_schedule(dev), effectivly 
busy polling for the queue becoming empty.

This is what leads to the high ksoftirqd usage I reported October 2005 into 
the ipw bugzilla (http://www.bughost.org/bugzilla/show_bug.cgi?id=825).

Please consider the workaround I posted there.

Stefan
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to