[comp.sys.sun] Sun-Spots Digest, v6n220

Sun-Spots-Request@Rice.edu (William LeFebvre) (09/08/88)

SUN-SPOTS DIGEST       Wednesday, 7 September 1988    Volume 6 : Issue 220

Today's Topics:
                    Re: data acquisition to Sun 3 (2)
           Re: YP updates, "Can't get an address for server ."
                    Re: Text previewers (Postscript)?
                     Re: broadcast storm at boot time
                                 Re: rolo
                  Exabyte tape drives; fast remote saves
                Problem: diskless clientss waiting on disk
                      Problems with atrun under 3.5
                       tcsh diffs for SunOS 3.5 csh

Send contributions to:  sun-spots@rice.edu
Send subscription add/delete requests to:  sun-spots-request@rice.edu
Bitnet readers can subscribe directly with the CMS command:
    TELL LISTSERV AT RICE SUBSCRIBE SUNSPOTS My Full Name
Recent backissues are available via anonymous FTP from "titan.rice.edu".
For volume X, issue Y, "get sun-spots/vXnY".  They are also accessible
through the archive server:  mail the request "send sun-spots vXnY" to
"archive-server@rice.edu" or mail the word "help" to the same address
for more information.

----------------------------------------------------------------------

Date:    6 Sep 88 16:55:42 GMT
From:    felix!arcturus!dav@hplabs.hp.com (David L. Markowitz)
Subject: Re: Data acquisition to Sun 3 (1)
Reference: v6n214

Ned Danieley <ndd@sunbar.mc.duke.edu> writes:
> We are interested in acquiring data to a Sun 3/160....we would like to go
> to an even higher data rate (about 500k bytes per second)...Does anyone
> have any experience transferring large amounts of data into VMEbus
> memory?...

We have done exactly the same thing.  I used a VME Microsystems Inc.  32
bit DMA board in a Sun 3/280.  Because of the non-real-time nature of Sun
OS, we built a custom "buffer box" to buffer the constant data stream we
wanted to collect against the burst transfers to the Sun.  Our goal was
550KB/s.  We didn't achieve it (because someone decided to only put 256K
in the buffer box), but we found that we would have been capable of ~700KB/s
with a very large buffer.  A 1MB buffer would be large enough to achieve
500KB/s.

These rates were measured doing DMA in to Sun memory (not VME memory) and
out to a Fuji 2333 (280M disk) using a Xy451.  A faster SMD controller
would help a lot too.  I wrote a driver for the DMA board, and our
application program which drives things is interesting too.  It uses
shared memory to communicate with two other processes doing data reduction
and graphic displays in real-time while collecting the data!  We found the
3/280 to be a real good machine for this.

	David L. Markowitz		Rockwell International
	dav@arcturus			...!sun!sunkist!arcturus!dav

	[[ Note that "dav@arcturus" is not a valid address in most
	domains.  --wnl ]]

------------------------------

Date:    Tue, 6 Sep 88 17:44:44 EDT
From:    c31!vaillan@ireqs3.UUCP (Clement Vaillancourt )
Subject: Re: data acquisition to Sun 3 (2)
Reference: v6n214

Yes, it is possible to do data acquisition with dual port memories on the
VME bus. We just completed an A/D to VSB bus interface to connect various
A/D to a dual ported VME/VSB memory. The memories we are using are 12 mb
modules from Micro Memory Inc. 9540 Vassar Ave. Chatsworth, Ca.
(818-998-0070).  Other modules from 4 to 16 mb are available. We are
writing one A/D data (16 bits) every micro-second into those modules via
the VSB port. The write cycle is about 350 ns so we can even look at the
data with a read cycle from the cpu on the VME bus when the data is
comming in! To acces the memory we map it, no special i/o driver are
required.

We are taking this route because our need is to build 3 Sun based data
acquisition systems, each with 32 analog inputs connected to 32 A/D and 32
memory modules. The total capacity of a system will be 32 milions samples
per second for 6 seconds.

Yes, each system will have 32 x 12 mb = 384 mb. of outboard memory.  We
are using two 21 slots Force VME chassis per system to put the 32 memory
modules and we connect those chassis to the Sun 3/160 with two VMEbus
Repeater 2000 from HVE Engineering Inc. from 1684 Dell Ave, Campbell, Ca.
(408-370-4666).

We intend to upgrade to Sun 4 and SunOs 4.0 soon, and we will also build
an other interface to use those memories in a rotating buffer mode with
external trigger to freeze the data in memory. When this is done the
system will be more or less equivalent to a high capacity digital scope.

   Clement Vaillancourt,
   Hydro-Quebec Research Institute 
   1800   Montee  Ste-Julie,   Varennes,   P. Quebec,   Canada,   J0L 2P0
   Tel.:   514-652-8238           Fax.:  514-652-8299  or  514-652-8180
UUCP:   ...ireqs3!vaillancourt 
      vaillancourt@ireqs3.uucp

------------------------------

Date:    Tue, 6 Sep 88 15:58:17 PDT
From:    sklower@okeeffe.berkeley.edu (Keith Sklower)
Subject: Re: YP updates, "Can't get an address for server ."

We got this symptom once after having manually added a YP server
via
	makedbm -u `domainname`/ypservers{,}

and having mistakenly included a blank line in the resulting ascii file.

------------------------------

Date:    Wed, 7 Sep 88 10:48:09 EDT
From:    gfr%wolfgang@gateway.mitre.org (Glenn Roberts)
Subject: Re: Text previewers (Postscript)?
Reference: v6n219

(Beth Elias):
> Is there a previewer (postscript most wanted) that would
> allow the fully formatted text to be displayed to the
> workstation monitor? 

The most obvious answer is Sun's NeWS system (last I looked NeWS was
essentially a give-away at $100, which includes the two Adobe books on
PostScript).  In NeWS applications 'client' processes communicate with a
window 'server' process (not necessarily on the same machine) using
PostScript.  NeWS includes a program called psview which displays any
PostScript thrown at it.

I also saw an ad for a product called PSView which bills itself as "The
first interactive previewing system fully PostScript compatible".  Cost is
$195.  I know nothing more about this product.  Contact Pipeline
Associates Inc., 239 Main St., W. Orange NJ, 07052 (201)- 731-7860.

(I have no association with Sun or Pipeline Associates, etc...)

Glenn Roberts, MITRE Corp, McLean VA
gfr%wolfgang@gateway.mitre.org

------------------------------

Date:    Tue, 6 Sep 88 15:28:02 PDT
From:    sklower@okeeffe.berkeley.edu (Keith Sklower)
Subject: Re: broadcast storm at boot time
To:      smb@research.att.com (Steve Bellovin)

In your submission to sun-spots you claim to be running 4.3-tahoe-beta on
your CCI machine which has a certain bug unfixed concering ICMP subnet
mask requests.  The problem has been fixed for the genuine 4.3-tahoe
release.

[[ Mr. Bellovin added "I should have known that, and did indeed remember
-- after I had sent the note -- that of course I had that code lying
around from the Berkeley release of it."  --wnl ]]

------------------------------

Date:    Tue, 6 Sep 88 15:08:54 PDT
From:    ultra!ted@ames.arc.nasa.gov (Ted Schroeder)
Subject: Re: rolo

Here's an interesting one.  Rolo crashes with a segmentation exception (on
a Sun 3/50 running SunOS 3.4) if you have /Text/Retained set to "Yes" from
the defaults menu.  (The default is "No", natch).  Anybody seen anything
like this before?  Is there anything we can do other than change the
default?

      Ted Schroeder                   ultra!ted@Ames.arc.nasa.GOV
      Ultra Network Technologies
      2140 Bering drive               with a domain server:
      San Jose, CA 95131                 ted@Ultra.COM
      408-922-0100

------------------------------

Date:    Tue, 06 Sep 88 14:04:35 -0700
From:    Tim Morgan <morgan@ics.uci.edu>
Subject: Exabyte tape drives; fast remote saves

We recently received our first Exabyte tape drive.  It's connected to a
Sun SCSI board in a 4/260 (running SunOS 4.0) and we're using the Sun
device driver.  So far, the maximum sustained throughput I've been able to
measure has been 239 KB/second, doing back-to-back writes of 63KB buffers,
although the claimed speed of the device is 246KB/s.  The speed of the
host doesn't seem to matter, as I measured the same 239 KB/s when the
Exabyte was connected to a 3/280 instead of a 4/260.  Has anyone been able
to achieve 246 KB/s?

I then began to develop some new software to do filesaves.  Right now I
have a tar-like program which does saves, either locally or remotely,
while the system is up.  The remote saves are done through a TCP
connection to an rmt-like program which accepts connections and passes the
data through to the Exabyte.  I've spent quite a bit of my free time over
the last week tuning these two programs, and I'm now able to do remote
saves at the same speed as local ones: 239 KB/s (14 MB/minute).  This is
saving files which are local to a 3/280 (with Xylogics 451 controllers and
one Eagle disk/controller) to the Exabyte connected to the 4/260, with no
intervening gateways.  Both systems are running SunOS 4.0 with the stock
TCP/IP.  The saving program consumes about 38% of the CPU time on the
3/280.  To achieve this speed, I had to use several features specific to
SunOS 4.0 (shared memory, memory-mapped files).  The total code so far is
about 700 lines of C.  It contains #ifdef's so that the programs can run
on earlier versions of SunOS or on 4.[23]BSD systems, but the throughput
won't be as great (I plan to do some additional tests to see how fast I
can make it run under these conditions).

We plan to have a front-end program which the operator will run.  It will
read a file similar to a makefile which specifies which machines and
filesystems need to be backed up on any particular day, and whether the
backup should be an incremental or a fullsave.  All the operator should
have to do is type "backup".  Because the saves are done with the system
up, the operator does not need physical access to the machine being backed
up; only to the Exabyte drives so he can change tapes.

Most restores we do are actually to recover files which a user has deleted
accidently, so we plan to have a restore program which can tell us which
backup tapes contain versions of file "X", along with the size and last
modification dates, so we can choose the correct version to restore.
There's also an interactive program, similar to the 4.2 "restore" program
which allows you to mark desired files for restoration.  Then you'll just
load the correct tape in the drive and type "go" to restore the desired
file(s).  It'll sort the files to be restored by their position on the
tape, so only one pass will be needed.

Tim Morgan
UC Irvine ICS Dept.

------------------------------

Date:    Tue, 6 Sep 88 17:15:50 PDT
From:    richk@humpback.cs.washington.edu (Richard Korry)
Subject: Problem: diskless clientss waiting on disk

The setup is: the server is a 3/280 running 3.3 with 8mb. the 3 diskless
clients are 3/60 running 3.5 with 12mb. The problem is that occasionally
my 3/60 will just stop in its tracks and a 'ps' reveals that processes are
waiting for disk (D). The client's biods are all inactive and swapped. At
least one of the server's biod's is Sleeping.  The nfsd's are also
sleeping. A perfmon shows basically no activity on the server. Eventually
(a minute or two) everything pops back to life. Nothing is being print by
any console other NFS server not responding.  Any ideas? 

    rich

------------------------------

Date:    Tue, 06 Sep 88 18:48:16 PDT
From:    Liza Weissler <liza%rcc@rand-unix.arpa>
Subject: Problems with atrun under 3.5

We've also had problems with atrun under 3.5; requests spooled with either
the 3.4 or 3.5 at bomb out with 'bad spool header' errors.  I reinstalled
the 3.4 version of at and friends and (of course) it works fine, but I'd
really like to know what the problem is with the 3.5 version.

Liza Weissler
The RAND Corporation

------------------------------

Date:    Wed, 7 Sep 88 04:44:53 CDT
From:    Jim "Cookie" Thompson on concave <convex!jthomp@a.cs.uiuc.edu>
Subject: tcsh diffs for SunOS 3.5 csh

Apply this diff, stir well, compile for 5 minutes at 350 deg F.  Serve to
your friends.

				Enjoy,

Jim Thompson	Convex Computer Corporation 	701 N. Plano Road
(214) 952-0536    Richardson, Texas 75081	jthomp@convex.COM
__________

RCS file: sh.sem.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -c4 -r1.1 -r1.2
*** /tmp/,RCSt1020343	Wed Sep  7 04:40:35 1988
--- /tmp/,RCSt2020343	Wed Sep  7 04:40:36 1988
***************
*** 132,139
   			 * save and restore the current sigvec's for
  			 * the signals the child touches before it
  			 * exec's.
  			 */
  			omask = sigblock(sigmask(SIGCHLD));
  			ochild = child; osetintr = setintr;
  			ohaderr = haderr; odidfds = didfds;
  			oSHIN = SHIN; oSHOUT = SHOUT;

--- 132,150 -----
   			 * save and restore the current sigvec's for
  			 * the signals the child touches before it
  			 * exec's.
  			 */
+  
+                         /* Sooooo true... If this is a Sun, save
+                          * the sigvec's. 
+                          */
+ #ifdef sun
+                         typedef struct sigvec * SVSP;
+                         struct sigvec oSIGINT,  oSIGQUIT, oSIGTSTP, oSIGTTIN,
+                                       oSIGTTOU, oSIGTERM, oSIGHUP;
+                         int Sun_omask;
+ #endif sun 
+ 
  			omask = sigblock(sigmask(SIGCHLD));
  			ochild = child; osetintr = setintr;
  			ohaderr = haderr; odidfds = didfds;
  			oSHIN = SHIN; oSHOUT = SHOUT;
***************
*** 138,145
  			ohaderr = haderr; odidfds = didfds;
  			oSHIN = SHIN; oSHOUT = SHOUT;
  			oSHDIAG = SHDIAG; oOLDSTD = OLDSTD; otpgrp = tpgrp;
  			Vsav = Vdp = 0; Vav = 0;
  			pid = vfork();
  			if (pid < 0) {
  				(void) sigsetmask(omask);
  				error("No more processes");

--- 149,176 -----
  			ohaderr = haderr; odidfds = didfds;
  			oSHIN = SHIN; oSHOUT = SHOUT;
  			oSHDIAG = SHDIAG; oOLDSTD = OLDSTD; otpgrp = tpgrp;
  			Vsav = Vdp = 0; Vav = 0;
+ #ifdef sun
+                         (void) sigvec( SIGINT,  (SVSP)0, &oSIGINT  );
+                         (void) sigvec( SIGQUIT, (SVSP)0, &oSIGQUIT );
+                         (void) sigvec( SIGTSTP, (SVSP)0, &oSIGTSTP );
+                         (void) sigvec( SIGTTIN, (SVSP)0, &oSIGTTIN );
+                         (void) sigvec( SIGTTOU, (SVSP)0, &oSIGTTOU );
+                         (void) sigvec( SIGTERM, (SVSP)0, &oSIGTERM );
+                         (void) sigvec( SIGHUP,  (SVSP)0, &oSIGHUP  );
+ 
+                         /*
+                          * Can't handle any of these signals until sigvec's
+                          * are restored 
+                          */
+ 
+                         Sun_omask =
+                             sigblock( sigmask(SIGINT)  | sigmask(SIGQUIT) |
+                                       sigmask(SIGTSTP) | sigmask(SIGTTIN) |
+                                       sigmask(SIGTTOU) | sigmask(SIGTERM) |
+                                       sigmask(SIGHUP) );
+ #endif sun 
  			pid = vfork();
  			if (pid < 0) {
  				(void) sigsetmask(omask);
  				error("No more processes");
***************
*** 145,152
  				error("No more processes");
  			}
  			forked++;
  			if (pid) {	/* parent */
  				child = ochild; setintr = osetintr;
  				haderr = ohaderr; didfds = odidfds;
  				SHIN = oSHIN;
  				SHOUT = oSHOUT; SHDIAG = oSHDIAG;

--- 176,194 -----
  				error("No more processes");
  			}
  			forked++;
  			if (pid) {	/* parent */
+ #ifdef sun
+                                 (void) sigvec( SIGINT,  &oSIGINT,  (SVSP)0 );
+                                 (void) sigvec( SIGQUIT, &oSIGQUIT, (SVSP)0 );
+                                 (void) sigvec( SIGTSTP, &oSIGTSTP, (SVSP)0 );
+                                 (void) sigvec( SIGTTIN, &oSIGTTIN, (SVSP)0 );
+                                 (void) sigvec( SIGTTOU, &oSIGTTOU, (SVSP)0 );
+                                 (void) sigvec( SIGTERM, &oSIGTERM, (SVSP)0 );
+                                 (void) sigvec( SIGHUP,  &oSIGHUP,  (SVSP)0 );
+                                 (void) sigsetmask(Sun_omask);
+ #endif sun
+ 
  				child = ochild; setintr = osetintr;
  				haderr = ohaderr; didfds = odidfds;
  				SHIN = oSHIN;
  				SHOUT = oSHOUT; SHDIAG = oSHDIAG;

------------------------------

End of SUN-Spots Digest
***********************