I'm currently working on a network driver, in particular trying to
improve performance when passing data up to the network stack.

For an example, a 9000 byte Ethernet frame comes in, and is DMA'd to the
system memory in three transfers of up to approximately 4000 bytes each.

Currently we are placing the first of the three transfers in the data
part of the sb_buff, we then copy (memcpy) the remaining two transfers
to freshly allocated pages (__alloc_pages), tying them onto the end of
the sk_buff, before passing it up the network stack.

This is hideously wasteful, and I was wondering what the best/proper way
to pass up a incoming frame which has been split into three sections is.

I can't see any code which does this in any other drivers, so I've got
the feeling I'm approaching it from completely the wrong angle. Can
anyone give me a few pointers as to how I should go about doing this
correctly?

Thanks,
 Steve
-
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