> 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.
Not really; I was considering implementing it in software, not rely on hardware support. You are completely right, it is a single segmented ring buffer. > 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
