From: jamal <[EMAIL PROTECTED]> 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. - 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