[u3b.misc] Info-3b2 Digest, Number 87

kdavis@lamc.UUCP (Ken Davis) (07/19/89)

 
                           Info-3b2 Digest, Number 87
 
                            Tuesday, July 18th 1989
 
Today's Topics:
 
                            Re:  AT&T Support Hotline
                       Looking for 3B2 information contact
                              Re: Modula-2 for 3B2
                         How optimal is your interleave?
----------------------------------------------------------------------
 
Subject: Re: AT&T Support Hotline
From: info-3b2@netsys.COM
Date: Wed, 28 Jun 89 05:25:19 -0400

From: "M.F. bettinger" <ames!ll-xn!usc!hacgate.uucp!mb18330>
Subject: Re:  AT&T Support Hotline

As a matter of fact, I too spoke with Rich Thomas of the New Jersey hot-line
and was extremely happy with the result.  AT&T marketing geniuses sold and
installed a 3B-NET board into our 3B2-600, for Ethernet, without providing
the internet address - and they said that no such address exists - well so
much for marketing brilliance.  The hot-line gave me to Rich Thomas who put
together a C program to read the address from the board - via uucp I received
the code - it worked and we lived happily ever-after.  Rich - if you read 
this drivvelll, thanks again.

------------------------------
 
From: info-3b2@netsys.com
Subject: Looking for 3B2 information contact
Date: Thu, 13 Jul 89 20:30:56 -0400

From: Greg Jahn <lll-tis!lll-crg!IDBSU.llnl.gov!DOSJAHN>

Howdy.  I support the use of several 3B2/310's and one 3B2/600 here
at Boise State University.  Our local ATT reps have been TERRIBLE
in providing information.  I currently receive the newsgroup u3b.
I am in search of a few information contacts for our current and
future applications, and I thought you may have some suggestions.

In particular, I have been unable to get a definite yes or no as to
the availability of Modula-2 for 3b2 systems.  This is something we
need to know before mid-August.

Thanks much for your time,

                 Greg Jahn                   DOSJAHN@IDBSU
                 Boise State University      ...!ucdavis!egg-id!bsu2!jahn
                 Boise, Id.                  (208)385-3891

------------------------------
 
Subject: Re: Modula-2 for 3B2
From: info-3b2@netsys.com
Date: Sat, 15 Jul 89 00:24:46 -0400

Date: Thu, 13 Jul 89 22:52:51 PDT
From: rich@bergy.UUCP (Bergstedt)

> In particular, I have been unable to get a definite yes or no as to
> the availability of Modula-2 for 3b2 systems.  This is something we
> need to know before mid-August.
> 
I know that I did at one time have a copy of a Modula-2 Compiler that I
received from a contact in NJ.  I do not know the validity of it or if it
is in fact operable.  If the person needing this would contact me directly
we could arrange some sort of file transfer or disk exchange.

I think I can find it but if I can't I can check back with my source.

--
Rich Bergstedt      AT&T Data Systems Group         uucp: uunet!spsd!bergy!rich
voice: 714-727-5231 8001 Irvine Center Dr. 2nd Fl.  -or-
fax:   714-727-5275 Irvine, CA 92718-2900           attmail!rbergstedt
        DISCLAIMER: These are my opinions, definitely not AT&T's.              

------------------------------
 
Subject: How optimal is your interleave?
From: info-3b2@netsys.com
Date: Tue, 18 Jul 89 16:51:27 -0400

Date: Tue, 18 Jul 89 13:31:54 BST
From: Graham Glen (Technical Manager) <hoptoad!qukmips!graham>

I don't know if this will be of interest to anyone, so I'll  send
it anyway.

Before we changed the drives in our 3B2, I found that the default
interleave  used  by  mkfs was wrong, so I wrote a shellscript to
test it for me.

Because another site that I talk to wanted to do much the same test I
finally got around to documenting how to set it up and what to make of the
output. So for your edification, amusement and entertainment I present the
thing as a shell archive. If anybody finds it useful or improves it, let me
know please 'cause I'm interested in other peoples findings on disk
interleaving and all matter related to tuning.

Graham
------------------- CUT HERE FOR FUN TIMES ------------------------
echo x - README
sed 's/^X//' >README <<'*-*-END-of-README-*-*'
X========================================================
XWhat you should have received:
X
XThe following files should be contained in this archive:
X
XREADME		this file
Xcheckileave	a shellscript that does the work
Xsquare.c	a c program that is used for input (when compiled)
X		to checkileave.
X
X========================================================
XWhat you will need:
X
XA spare disk partition with a minimum of 5Mb of free space on it.
XBe warned THE CONTENTS OF THE PARTITION WILL BE TRASHED.
X
XSome spare time to run it in.  Preferably  when  the   system  is
Xunloaded,   or   lightly   loaded.   However, the tests are run a
Xsufficient number of time  to  try  and  reduce  the  deliterious
Xeffects  of  other  jobs on the system. I always schedule it with
X"at" to run overnight.
X
X========================================================
XWhat you should do with them:
X
Xtype "make square" to make an executable. 
X
XEdit the shellscript "checkileave" to set the following variables
Xat the start to sensible values for your machine.
X
XVariable	Description
X--------	-----------
XSTART		The smallest interleave that you wish to try. Leaving this
X		set to 1 will have no ill effects other than increasing the
X		time taken to run the job. I normally let mine run from 1
X		to show the curve of the results more clearly.
X
XEND		The largest interleave that you wish to try. If you don't
X		have any particular value in mind, set it to the number of
X		sectors per track of the drive that you are testing.
X
XDEVICE		The full path name of the block special device for the
X		partition to be used. eg. DEVICE=/dev/dsk/c1d0sb. This is
X		the partition that will get overwritten. Make sure that if
X		there is anything on it you back it up first.
X
XMNT		The mount point for the partition. If you are running SVR3
X		then this value will be overridden by the entry in
X		/etc/fstab.
X
XBLOCKS		The number of blocks that are available on the device. This
X		is the full number of blocks, not the number that are left
X		free after an "mkfs".
X
XCYLINDER	The number of blocks per cylinder. eg. The number of
X		sectors per track * the number of heads.
X
XINPUT		The name of the program that will be used to generate input
X		to the shellscript. This should be a full pathname eg.
X		INPUT=/usr2/graham/bin/square
X
XTIMES		The number of times that each interleave value will be
X		tried. I use a value of 10 to try and reduce the effects of
X		inconsistant times caused by other processes running at the
X		same time. If the output shows statistically large
X		variations for the values set of interleave values then
X		increase this value, or try again when the system has less
X		of a load on it.
X
XMOUNT		Where the mount command is.
X
XUMOUNT		Where the umount command is.
X
XMKFS		Where the mkfs command is.
X
XDD		Where the dd command is.
X
X========================================================
XHow to run the test:
X
XCopy square (or whatever program you are going to use as  input),
Xand  the  "checkileave" shellscript to a directory where you want
Xthem. Next, schedule "checkileave" to be run at a period when the
Xsystem  will be fairly quiet. I normally use "at" to let it start
Xat about 1 am. Using this method means  that  you  will  get  the
Xresults mailed back to you for later perusal.
X
XDon't bother to try and run the command on your terminal, I don't
Xthink that anybody has a high enough boredom threshold to sit and
Xwait for the full output, and in anycase, unless you remember  to
Xpump the output through "tee" you will lose it all nullifying the
Xwhole process.
X
X========================================================
XWhat to do with the results:
X
XThrough sheer laziness I haven't bothered to  write  anything  to
Xprocess  the  output of "checkileave". It is not really necessary
Xanyway, unless you are the type of person  who  likes  to  change
Xhis/her disk drives every week.
X
XHere's what I normally do with the results. For every  interleave
Xvalue  tried  you  will  have  TIMES  sets  of  data. Each set is
Xcomprised of a pair of times, the first for how long it  took  to
Xwrite  the  data, the second for how long it took to read it back
Xagain. There should not (statistically) be much variance in times
Xfor  each  interleave  value.  If there is then you will probably
Xneed to run the test again when the system is quiescent.
X
XFor each interleave value, separate the elapsed  read  and  write
Xtimes. Take the average of each set and put into a pair of files,
Xone for reading, one for writing.  Do  this  for  all  interleave
Xvalues  and  you should have a sequence of numbers in each of the
Xtwo files which decrease to a point  and  then  start  increasing
Xagain. I normally throw these two files at a graphics package and
Xshow both curves at once.
X
XIn an ideal world, the lowest times for reading and writing would
Xboth  coincide  at  the  same interleave value. But in practice I
Xhave yet to see this  happen.  Normally  (and  I'm  running  from
Xmemory  here,  I  haven't  used  this script in anger for about a
Xyear) the shortest time for reading is at an interleave value  of
X1  less  than  the shortest time for writing. Pick the interleave
Xfrom this that you think will offer the best performance. I  have
Xin  the past always used the best interleave for writing as it is
Xonly a small trade off in speed for reading. That decision  might
Xform the basis for a holy war!
X
XI originally wrote this shellscript to test  the  performance  on
Xour  3B2/400  when it was fitted with 72Mb CDC Wren II's. I found
Xon those that the interleave value that was used as  the  default
X(9  I  think)  was  one higher than the one which offered optimal
Xperformance. It is always better to have the interleave  set  too
Xhigh  than  too low. If you look at a graph of the results from a
Xtest you will see that there is a sudden drop in times  when  the
Xbest  interleave  value  is  approached and a gradual increase in
Xtimes as it is passed.
X
X========================================================
XDisclaimer:
X
XI hope that if you use this script you derive some  benefit  from
Xit,  but  please  don't  blame  me if it trashes your machine - I
Xwrote it to be fairly portable and give it  away  freely,  but  I
Xcan't guarantee anything in this life.
X
XIf you have got any suggestions as  to  how  to  improve  it,  or
Xperhaps  write  a script to perform some of the processing on the
Xresults (which I confess to not having the  inclination  to  do!)
Xplease let me know about it as I'm always interested.
X
XGraham Glen
XQuadratron Systems (UK) Ltd.
XJune 1989
*-*-END-of-README-*-*
echo x - checkileave
sed 's/^X//' >checkileave <<'*-*-END-of-checkileave-*-*'
X
X#
X# I've only run this with /bin/sh & /bin/ksh, I think it would probably
X# puke its guts out on csh.
X#
X# Interleave factor to start with:
XSTART=1
X#
X# Interleave factor to end with:
XEND=17
X#
X# Device name:
XDEVICE=/dev/dsk/c1d0sb
X#
X# Number of blocks on device:
XBLOCKS=48705
X#
X# Blocks per cylinder
XCYLINDER=255
X#
X# Mount device as:
XMNT=/usr4
X#
X# Program to use to generate a big file:
XINPUT=/usr2/graham/bin/square
X#
X# Number of times to run each write/read pair:
XTIMES=10
X#
X# Where mount(1) is:
XMOUNT=/etc/mount
X#
X# Where umount(1) is:
XUMOUNT=/etc/umount
X# 
X# Where mkfs(1) is:
XMKFS=/etc/mkfs
X#
X# Where dd(1) is:
XDD=/bin/dd
X#
X
XUID=`id | cut -d= -f2 | cut -d\( -f1`
Xif [ "${UID}" != "0" ]
Xthen
X	echo "You must have a uid of 0 to run this program"
X	exit
Xfi
X
Xulimit 10240
Xinterleave=`expr ${START} - 1`
X#
Xwhile true
Xdo
X	interleave=`expr $interleave + 1`
X	if [ "${interleave}" -gt "${END}" ]
X	then
X		break
X	fi
X
X	loop=0
X	while [ "${loop}" != "${TIMES}" ]
X	do
X		loop=`expr ${loop} + 1`
X
X		${UMOUNT} ${DEVICE}
X
X		echo "Building file system on ${DEVICE} with interleave ${interleave}"
X
X		# build the file system with the correct interleave
X		${MKFS} ${DEVICE} ${BLOCKS} ${interleave} ${CYLINDER} >/dev/null 2>&1
X
X		# echo "Mounting ${DEVICE} as ${MNT}"
X		${MOUNT} ${DEVICE} ${MNT}
X
X		# Create the file for the timings
X		echo "Time to create a 1Mb file on ${MNT} with an\c"
X		echo " interleave factor of ${interleave}:"
X		${INPUT} |\
X		time ${DD} ibs=1k obs=1k of=${MNT}/bigfile count=1000
X
X		# now time how long it takes to read it back to /dev/null
X		echo "Time to read a 1Mb file from ${MNT} to /dev/null"
X		echo "with interleave factor of ${interleave}:"
X		time ${DD} ibs=1k obs=1k of=/dev/null if=${MNT}/bigfile
X
X		# All done, go around for another iteration....
X	done
Xdone
*-*-END-of-checkileave-*-*
echo x - square.c
sed 's/^X//' >square.c <<'*-*-END-of-square.c-*-*'
X/*
X *	square.c - produce 'U' on stdout (square wave on scope)
X */
X
X#include <stdio.h>
X
Xmain()
X{
X
X	int	loop;
X	for (;;)/* forever */
X	{
X		for (loop = 1; loop <= 5120; loop++)
X			putchar('U');
X		/* sleep(1); */
X	}
X}
X
*-*-END-of-square.c-*-*
exit

--
Graham Glen			      | Voice +44 1 371 5755
Quadratron Systems (UK) Ltd.	      |       +44 836 380006 (mobile)
		{quad1,qnorth,qswiss,ukc,attunix!uel}!quaduk!graham
		"I may not have gone where I intended to go,
		but I think I have ended up where I needed to be."

 
-------------------------------------
 
To join this group or have your thoughts in the next issue, please
send electronic mail to Ken Davis at the following address;

    {apple, netsys, pacbell, pyramid}!lamc!info-3b2-digest
 
The views expressed in Info-3b2 Digest are those of the 
individual authors only.
 
**********************
End of Info-3b2 Digest
**********************