On Sat, Jul 04, 2009 at 05:09:10PM +0800, Herbert Xu wrote: > > One potential problem is if the socket is constantly running > close to capacity, but that should only happen if the device > TX queue is also close to capacity which means that the qdisc > queue should be non-empty. Here's a another crazy idea: Let's use dummy TX descriptors to generate an interrupt, either with or without transmitting an actual packet on the wire depending on the NIC. xmit(skb) if (TX queue contains no interrupting descriptor && qdisc is empty) mark TX descriptor as interrupting clean() do work if (TX queue contains no interrupting descriptor && TX queue non-empty && qdisc is empty) send dummy TX descriptor This is based on the assumption that in the time it takes for the NIC to process one packet and interrupt us, we can generate more packets. Obviously if we can't then even if the NIC had a queue-empty interrupt capability it wouldn't help. Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization