*BSD News Article 8278


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!news.hawaii.edu!ames!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!destroyer!cs.ubc.ca!unixg.ubc.ca!kakwa.ucs.ualberta.ca!acs.ucalgary.ca!cpsc.ucalgary.ca!ajfcal!novatel!hpeyerl
From: hpeyerl@novatel.cuc.ab.ca (Herb Peyerl)
Subject: Oldbie discovers problem(s) with wd.c but has more.
Message-ID: <1992Nov28.144527.3506@novatel.cuc.ab.ca>
Organization: none
Date: Sat, 28 Nov 1992 14:45:27 GMT
Lines: 61

Some of you may remember my post from a couple of weeks ago regarding
the problems I've been having with getting my machine to work properly
at home.  I was getting non-random hangs (ie: fsck would hang about
9 times out of 9.1) and a few other select items... The wd.c from
the patchkit wouldn't work because I'd get "panic: cannot mount root".

Well, I didn't receive any wonderful answers so I decided to take the
plunge myself and have discovered a few things...

The wd.c patches in the patchkit are to blame for the "panic" I've
been experiencing.  What happens is that since I'm a scavenger and
refuse to pay real money for my computer equipment, I get my hardware
however and wherever I can; even if it means taking several broken
drives into our clean-room and making one semi-non-broken drive...

Anyhow, as it turns out, the drives that I have (Micropolis 1335, and
Maxtor 1140) don't really know anything about their OWN geometry so
when wdgetctlr() issues a WDCC_READP, the controller returns with a
WDCS_ERR and the error is "abrt"... Consequently, wdattach() gets an
error from wdgetctlr() and proceeds to deconfigure the drive.  Anyhow,
commenting out the offending lines in wdattach() solved that problem.

(Which brings up a side-point; what purpose does it serve to read the
disk parameters from the disk when they're already in the disk label?
Or does this have something to do with the "Drive Translation Religious
Debate"???)

There are also some missing "splx(x)"s from wdgetctlr() and wdsetctlr()
which I wouldn't have found were it not for "deraadt@newt.cuc.ab.ca"
who caught them while on the phone one night comparing code.

Anyhow, after some playing around and speaking to the author of the
patch; I picked up the barsoom wd.c patches from agate... They don't
suffer the above mentioned panic...

However, (to the real point of this message) I'm experiencing some
rather different hangs now.  

My system appears to be extremely reliable now.... I can actually
build software without the machine hanging... The machine will 
"*ALMOST*" boot everytime... And this is where the problem is...

If I do a cold boot (ie: a powerup) then the machine will boot
every time.  If I do a warm boot ("/sbin/reboot" or "/sbin/halt"),
then fsck hangs right towards the end.  At that point, I can only
turn it off (I'm too lazy to build a proper reset switch onto my
motherboard which is so old there's no jumper block for it) and of
course it'll boot because I've just power cycled it.

So, I thought, well, maybe it has something to do with the missing
splx(x)'s (which are missing from barsoom's patches as well) or
perhaps I should take out the controller reset from wdprobe(). But
those didn't solve the problem either. 

I can't really imagine what it could be so am wondering if anyone 
else may have an idea... 
-- 
"I was early to finish | hpeyerl@novatel.cuc.ab.ca <Reply-To>   | I brew |
I was late to start, I | peyerlh@cuug.ab.ca                     | there- | 
might be an adult, but | #define JANITOR "Network Administrator"| fore I | 
I'm a minor at heart." |    JANITOR, NovAtel Communications Ltd.|   AM.  |