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

Reply via email to