Garrett D'Amore wrote:
> I agree with Dana's sentiments here.
>
> I'll add one thing, from my own experience:  in my own experience the 
> pain and suffering of dealing with scatter/gather is not justified on 
> modern systems with ordinary sized ethernet frames.  In fact, 
> experience shows that just copying frames (you can use mcopymsg()) 
> into a contiguous preallocated buffer is more efficient than trying to 
> worry about scatter/gather.  (Scatter/gather is only really applicable 
> when you map buffers directly without copying them anyway.)
... or when your NIC has fixed transmit/receive resources.

I think Steven might have been using the expression "scatter/gather" a 
little
specifically, though.  The DP8390 doesn't do scatter/gather in the sense
that payload data is contained in arbitrary memory buffers; the ring managed
by the 8390 is a fixed allocation.  So we're really talking about a 
segmented
ring buffer, in which case it isn't *that* complicated to manage 
copy-in/out.

In 1995, I had no trouble saturating a 10Base-T Ethernet with a
PCnet-PCI card on 100MHz Pentium systems without driving the
CPU utilization through the roof, and that driver copied frames in
and out of a segmented ring buffer - so I'm comfortable agreeing
that a modern PCIe system would have no trouble keeping a
100Mb/s adapter fed without high CPU or bus utilization.

More generally speaking, though - I'd be surprised if  > 1Gbe NICs
perform well with copy-in/out, and CPU utilization is probably a huge
factor, and the size of the frame is likely less of a factor than the simple
transfer rate a good NIC can maintain.

Cheers,
Dana

_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to