* David S. Miller <[EMAIL PROTECTED]> 2005-08-23 10:35 > Currently NETIF_F_SG drivers do not wake up the TX queue > until MAX_SKB_FRAGS descriptors are ready, now they'll > have to defer until (N * MAX_SKB_FRAGS) are available. > > And even for a low value of "N" like 3 this is a whopping _54_ TX > descriptors on 4K PAGE_SIZE platforms. Heck, many drivers do not come > up with that many TX descriptors available, in total! > > And it's unthinkable to put this TX queue emptyness knowledge > into the generic queueing layer. Poor man's TSO is definitely > not worth this.
Maybe not in the generic queueing layer but we can provide a specific qdisc which would be aware of this and could provide chained skbs with a configureable N. The qdisc could either rely on having a at least partly filled queue or use a timer to give every skb a few jiffies delay to wait for other skbs useable for chaining. The major issues on this would be in qdisc_restart() so we'd probably have to extend the api and add a dequeue_chain() and only use it if both the device and qdisc support it. Just a thought but this would probably be the easiest implementation which could still result in some gain. It's not poor man's TSO anymore though ;). - 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