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
