> 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

Reply via email to