On Thu, 13 Feb 2003 23:22:36 +0100, Wolfgang Wegner wrote > Hi, > > i am currently experiencing a problem with the tx queue sending udp > (rtp, to be precise) packets. > > Scenario: > i have an application sending approx. 7MBit/s datarate (1400 Byte RTP > packets in bursts of 20 packets each). The device transmitting this stream > is an intersil 802.11a card, the packets are sent to a multicast address. > From time to time (more frequent the higher i choose the tx (packet) rate), > the queue stops, i.e. the application waits in sendto(). As soon as > i transmit any other packet over the same device (e.g. a single ARP > packet by trying to ping a non-existent host on the same logical net), > the queue resumes normal operation. I could not find any problem > (race condition etc.) in the device driver, and as far as i can see, > there is no reason why this could be worked around by transmitting > these other packets. [cut] > If there's anything i could try to track this down, please let me know! Check that the driver calls dev_kfree_skb() quickly after transmission. This should be in either dev->hard_start_xmit() (usually PIO devices) or in the interrupt handler (usually DMA devices). Calling dev_kfree_skb() too late would explain why other applications can still send packets. Check that the netif_stop_queue() and netif_wake_queue() calls are made in the right places under the right conditions. Add logging if necessary. Check the tx timeout handling (dev->tx_timeout() and dev->watchdog_timeo). Maybe the device is losing interrupts. -- Regards, Rask Ingemann Lambertsen - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html