Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site umcp-cs.UUCP
Path: utzoo!linus!decvax!wivax!cadmus!harvard!seismo!umcp-cs!chris
From: chris@umcp-cs.UUCP (Chris Torek)
Newsgroups: net.unix-wizards
Subject: Re: Hanging VAX 11/780 - any solutions?
Message-ID: <251@umcp-cs.UUCP>
Date: Sat, 6-Oct-84 03:48:53 EDT
Article-I.D.: umcp-cs.251
Posted: Sat Oct  6 03:48:53 1984
Date-Received: Sun, 7-Oct-84 21:19:04 EDT
References: <950@kaist.UUCP> <987@trwrba.UUCP>
Organization: U of Maryland, Computer Science Dept., College Park, MD
Lines: 26

There DOES seem to be a bug in various versions of the 4.2BSD UDA50
driver.  In particular, ``df'' will appear to hang frequently when
the disk is busy.  (If you are careful and lucky, you can unhang it
with another ``df''.)

The reason is that the UDA50 driver has code in udopen() that checks
to make sure the drive is really there, by doing an on line command.
Unfortunately it doesn't block interrupts while doing it.  The command
takes long enough that this isn't usually a problem, but if the disk
is busy, blammo!  (Other random interrupt load could do it too.)

The funny thing is that it doesn't even need to do the on-line in most
cases.

There may be DMF driver bugs, but we haven't run into any yet.

[Fix to UDA driver is simply move the splx(s)'s around so that the
test on ui->ui_flags==0 followed by a M_OP_ONLIN is atomic; it's also
a good idea to not bother with the on line if the drive is on line
already.]
-- 
(This mind accidently left blank.)

In-Real-Life: Chris Torek, Univ of MD Comp Sci (301) 454-7690
UUCP:	{seismo,allegra,brl-bmd}!umcp-cs!chris
CSNet:	chris@umcp-cs		ARPA:	chris@maryland