[ofa-general] Re: [PATCH 0/10 REV5] Implement skb batching and support in IPoIB/E1000
David Miller
davem at davemloft.net
Mon Sep 17 09:37:15 PDT 2007
From: jamal <hadi at cyberus.ca>
Date: Mon, 17 Sep 2007 08:51:40 -0400
> On Sun, 2007-16-09 at 20:13 -0700, David Miller wrote:
>
> > This only makes sense for devices which can 1) scatter-gather
> > and 2) checksum on transmit.
>
> If you have knowledge there are enough descriptors in the driver to
> cover all skbs you are passing, do you need to have #1?
> Note i dont touch fragments, i am assuming the driver is smart enough to
> handle them otherwise it wont advertise it can handle scatter-gather
Yes, because you can have multiple descriptors per SKB
because we have the head part in skb->data and the rest
in the page vector.
Thus the device must be able to handle multiple descriptors
representing one packet.
> > Otherwise we make too many copies and/or passes over the data.
>
> I didnt understand this last bit - you are still going to go over the
> list regardless of whether you call ->hard_start_xmit() once or
> multiple times over the same list, no? In the later case i am assuming
> a trimmed down ->hard_start_xmit()
If the device can't checksum, we have to pass over the data to
compute the checksum and stick it into the headers.
If the device can't scatter-gather, we have to allocate and
copy into a linear buffer.
Otherwise it's just bumping page reference counts and adjusting
offsets, no data touching at all.
More information about the general
mailing list