On 1/20/06, John Smith <[EMAIL PROTECTED]> wrote: > Hi, > > I just have some questions about the packet splitting which is supported by > some PCI-express platforms. It seems the packet data buffer part (header and > payload) is splitted into several parts and stored into different buffers > while PCI-X NIC use 2K data buffer for every packet.
sounds like you're talking about e1000, so I'll answer. > My question is: what is the purpose of this packet splitting? It seems each > splitted part has different size, why not choose a uniform size for each > part? the major purpose is to have the data aligned to a 4k boundary, and to have a seperate allocation for the network header. It really seems to help most for decreasing cpu utilization, AFAICT. > It seems it serve the same purpose as copybreak. Can anyone please me give > some more hints. I believe it does serve much the same purpose, but copybreak optimizes receive socket buffer utilization (thanks to davem for pointing that out) esp if a dma device allocates a large amount of space (say for jumbo frame reception) and dev_alloc_skb forces an increase in allocation size to the next power of 2. conceiveably it could give you some efficiency due to multiple TCP/IP header buffers in the same page. - 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