Hi Dave, David Miller <[EMAIL PROTECTED]> wrote on 05/11/2007 02:27:07 AM:
> > I don't understand how transmitting already batched up packets in one go > > introduce latency. > > Keep thinking :-) > > The only case where these ideas can be seriously considered is during > netif_wake_queue(). In all other cases we go straight to the device > from sendmsg(), since there is space in the TX ring, and we should > not try to batch as that will add latency. I am not very clear about this, you are saying latency will increase due to old packets not being cache-warm ? But the existing code will do exactly the same thing as what I am proposing, except it will iterate over all the packets one by one. So will batching them make latency worse ? In the sendmsg case you wrote above (is it tcp_transmit_skb), it will still come via IP (through dst_output) ? I would like to try your idea if you are sure it will reduce latency. Thanks, - KK > So maybe find a solution in that area, some new driver interface that > can suck N packets out of a qdisc when netif_wake_queue() occurs. > > If you look at the contexts in which netif_wake_queue() is called, > it's perfect, it already has the TX state of the driver locked, it has > the TX descriptor head/tail pointers handy, etc. and it's already > taken all the cache misses needed in order to work with this state. - 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