From: martin@unislc.uucp (Martin Cryer)
Subject: Re: Shared Memory or DMA ethercards for UNIX on a PC
Reply-To: martin@unislc.UUCP (Martin Cryer,D1Z01,5754)
Organization: Unisys, Salt Lake City
Date: Sat, 9 Jan 1993 03:04:34 GMT
Keywords: Ethernet Adapters

In article <1993Jan7.143335.22910@microware.com> adam@microware.com (Adam Goldberg) writes:
>bad@flatlin.ka.sub.org (Christoph Badura) writes:
>
>>In <1993Jan6.201525.24636@nisc.psi.net> adams@nisc.psi.net (Mark Adams) writes:
>>>I have a chance to purchase an ethernet adapter which supports
>>>10BaseT and 10Base2 for about $100.  Two models are available,
>>>one uses 32k shared memory, the other DMA.
>>>For a multitasking system, which would be a wiser choice?
>
>>The best choice would be a card that is supported with a driver by your
>>UNIX. That said, I know of no ethernet card driver for UNIX that does
>>DMA (if someone knows better please correct me).
>
>Furthermore:
>
>  o  DMA would likely be slower

DMA via the system board, true, Bus Master DMA by a controller
would probably be faster for anything other than really small
packets.

>
>  o  If you do use DMA in addition with other DMA-using cards (ie,
>SCSI cards like the Adaptec 1542), you may run into problems with
>memory refresh.  If you spend too much time doing DMA for other
>purposes, you don't refresh RAM often enough (since the refresh uses
>DMA as well).  There are workarounds (at least for the Adaptec), but
>they are not, well, optimal.

Most "modern?" boards I doubt would still use DMA channel 0 to drive
the refresh on memory. You should be safe on most i386 or i486 system
boards, but it may be worth double checking with your system
motherboard vendor to see if refresh is not done via DMA.

>
>-- 
>Adam G.
>adamg@microware.com, or ...!uunet!mcrware!adamg
>The above is not to be construed in any way as the official or unofficial
>statements of Microware, or any Microware employees.

To be honest, the usual use of Ethernet in the UNIX world is for
file transfer or remote logins. The former means taking data
from disk one end and putting it down on the other. The latter means
lots of small packets.

I doubt whether you are usually going to saturate the Ethernet (especially
if the protocol stacks are run in the main CPU) because the limiting
factor will be the protocol stack or stream processing and the file
system level file I/O bandwidth. (OK so small files will go memory to
memory - buffer cache to buffer cache.....).

As for rlogin and telnet, the small packet size will create is own loads,
of which the controller performance is probably not the limiting factor.

When it comes to NFS or RFS networked file systems, it may be more
important, but even then, I doubt if the technology options you
describe will be the predominant limit.

Ethernet will still only run a theoretical 10Mbit/s even with the most expensive
board...

I have some 486 DX/33MHz and 486 DX-2/66MHz EISA PCs here running
SVR4.0/MP using both a cheap 8 bit 3COM3c503 Etherlink II shared memory
controller and a more complex UNISYS 32 bit i82596/PLX9020 EISA Bus Master
controller.

Even running NFS, ftp or rlogin, there is not that much advantage
to be had of the 32 bit EISA board over the 8 bit ISA board. OK, if
I load the systems heavily and were to be running TCP-A benchmarks then
sure I could tell the difference, but for most network usage that I
do I'm hard pushed to tell the difference.

I would personally plum for the one with the best (most reliable) device
driver, unless ultimate performance is the sole requirement.

Martin Cryer
SVR4.0/MP Development
U6000 Architectures Group
UNISYS Salt Lake City

All opinions are my own and are not those of my employer.


Newsgroups: comp.unix.pc-clone.32bit