Question on bulk dequeue support in virtual drivers

2 messages, 2 authors, 2014-11-20 · open the first message on its own page

Question on bulk dequeue support in virtual drivers

From: James Yonan <hidden>
Date: 2014-11-20 12:39:45

Consider a tunneling driver that receives packets in ndo_start_xmit, 
encapsulates them in UDP, and forwards via ip_local_out.  The 
ndo_start_xmit implementation can implement bulking by looking at 
skb->xmit_more.  But then how to efficiently transmit the resulting 
bulked list of encapsulated packets via UDP, so that the packets both 
enter and leave the driver in bulked form?  Is there an ip_local_out 
alternative for bulked skb lists?

James

Re: Question on bulk dequeue support in virtual drivers

From: Eric Dumazet <hidden>
Date: 2014-11-20 15:26:30

On Thu, 2014-11-20 at 05:39 -0700, James Yonan wrote:
Consider a tunneling driver that receives packets in ndo_start_xmit, 
encapsulates them in UDP, and forwards via ip_local_out.  The 
ndo_start_xmit implementation can implement bulking by looking at 
skb->xmit_more.  But then how to efficiently transmit the resulting 
bulked list of encapsulated packets via UDP, so that the packets both 
enter and leave the driver in bulked form?  Is there an ip_local_out 
alternative for bulked skb lists?
There is no such thing. Quite frankly it wont happen. Consider IP stacks
and netfilter, there is no provision for batches (other than GSO/TSO)

xmit_more addresses a specific hardware problem, it is not an
alternative for batches.

xmit_more will happen in your case in the last step, from qdisc to
ethernet device.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help