The discussion seems to have steered into protocol coalescing. My tests for example were related to forwarding and not specific to any protocol.
On Thu, 2007-10-05 at 12:43 -0700, Gagan Arneja wrote: > It's not just small packets. The cost of calling hard_start_xmit/byte > was rather high on your particular device. I've seen PCI read > transaction in hard_start_xmit taking ~10,000 cycles on one particular > device. Count the cycles your brand of NIC is taking in it's > xmit_routine. The worse it is, the stronger your case for cluster > transmits. You would need to almost re-write the driver to make sure it does IO which is taking advantage of the batching. > Also, I think, you don't have to chain skbs, they're already chained in > Qdisc->q. > All you have to do is take the whole q and try to shove it > at the device hoping for better results. You are onto something with desire to use the qdisc; however, note you need to leave the qdisc above so other CPUs can continue enqueueing. In my approach i used the qdisc to populate a list that is attached to the dev. > But then, if you have rather > big backlog, you run the risk of reordering packets if you have to requeue. You could avoid totaly requeueing by asking the driver how much space it has. Once you shove down to it a number of packets, you are then guaranteed they will never be requeued (refer to the slides i pointed to earlier). cheers, jamal - 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