[net.unix-wizards] Drive/Device driver performens

lasse@daab.UUCP (Lars Hammarstrand) (09/13/85)

	Hello "net folks" !

Here you all have a real brain training problem.

Let's say that you have two different disk drives, one is a STDC whith
DMA transfer to main memory and the other one is a SMD drive but with a very
slow (programmed IO) transfer to main memory, in other words, it has to
pick each byte from the controller one by one from a data-port instead of
transfer it with DMA as in the STDC controller.

Now the problem: 
----------------
How can you measure witch one is faster than the other one in real life?,
and how can you measure the efficiency of the divice driver ?
I mean can you put it black on white in some way?.

One way to test it (that I have done), is by copying a lot of data (a cptree)
from one device to the other and so on with the time command, but it didn't
give me any bigger difference between the drives!. I'm running a Cromemco
SysVr2 machine with a UniPlus+ port.

Tanks in advance:

	Lars Hammarstrand.
	Datorisering AB, Stockholm, SWEDEN.

	UUCP:	{seismo,decvax,philabs}!{mcvax,ukc,unido}!enea!daab!lasse
	ARPA:	decvax!mcvax!enea!daab!lasse@berkley.ARPA
		decvax!mcvax!enea!daab!lasse@seismo.ARPA

djg@nsc-pdc.UUCP (Derek Godfrey) (09/18/85)

> Here you all have a real brain training problem.
> 
> Let's say that you have two different disk drives, one is a STDC whith
> DMA transfer to main memory and the other one is a SMD drive but with a very
> pick each byte from the controller one by one from a data-port instead of
> transfer it with DMA as in the STDC controller.
> 
> Now the problem: 
> ----------------
> How can you measure witch one is faster than the other one in real life?,
 
 First what do you mean by faster? smallest latency or greatest
 transfer rate - both of which can be found by specs. Or as I suspect
 greatest aggregate thougth-put on a running system.
	To get a fisrt order measuerment of I/O overhead:
	A) get an empty machine.
	B) write a cpu intensive program (A counting loop that
	   terminates).
	C) find out how long that program runs with no activity.
	D) run the loop and each of the disc tests together.
	E) the increases in time of execution now represents cpu cycles
	   (including DMA) not available to it due to the disc accesses.
 Note you are measuring an approximation for what happens in real life
 and does not model multiple requests at random or synchronised times.

lasse@daab.UUCP (Lars Hammarstrand) (09/25/85)

In article <482@nsc-pdc.UUCP> djg@nsc-pdc.UUCP (Derek Godfrey) writes:
> First what do you mean by faster? smallest latency or greatest
> transfer rate - both of which can be found by specs. Or as I suspect
> greatest aggregate thougth-put on a running system.
>	To get a fisrt order measuerment of I/O overhead:
>	A) get an empty machine.
>	B) write a cpu intensive program (A counting loop that
>	   terminates).
>	C) find out how long that program runs with no activity.
>	D) run the loop and each of the disc tests together.
>	E) the increases in time of execution now represents cpu cycles
>	   (including DMA) not available to it due to the disc accesses.
> Note you are measuring an approximation for what happens in real life
> and does not model multiple requests at random or synchronised times.

Firts of all, thanks for the tip.
(to Derek Godfrey at NCS Portland Development Center, and all other who
'mailed' me)

I did mean the total system throuput, becuase I know that the STDC board
with DMA (and internal i/o overlapping) must be more effective then the dumb
SMD board with programmed-i/o. Even if the transfer rate from a SMD disk to the
board is much faster (1.2 Mbyte/sec), the transfer rate with a "dbra" intstruc-
tion can't be faster than 432 Kbyte/sec on a 68000 system.

With a "dbra" loop, I mean:

loop:	movb	a5+,a4@
	dbra	d7,loop
	
I think that, if load your main cpu with jobs like programmed io and
things like that, you will get a slower system throuput for each device
you connect and most of the times you are intrested of a higher system
thrughput = more users on the system.  RIGHT??

Have anybody out there, used the system profiler(1M) commands in SysV ?
(prfld, prfstat, prfdc, prfsnap and prfpr.)
Can they help me to measure device driver performens, or just fork/exec
overhead and things like that?

Why do I want to know more about these things?, beacuse I would like
to prove that the bad channel in micros, is one of the things that
makes them run much slower than minis even if the cpu speed sometimes is
faster. (recoginizing this?: Our micro XXXXX is faster than a vax750!!)

I my self, is running on a Cromemco 300 with a UniPlus+ SysVr2 port
and I think it's a pretty fair system, but as usualy it can be better if
I can speed up the channels.

	Lars Hammarstrand.
	Datorisering AB, Stockholm, SWEDEN.

	UUCP:	{seismo,decvax,philabs}!{mcvax,ukc,unido}!enea!daab!lasse
	ARPA:	decvax!mcvax!enea!daab!lasse@berkley.ARPA
		decvax!mcvax!enea!daab!lasse@seismo.ARPA