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