*BSD News Article 20225


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!metro!sequoia!ultima!kralizec.zeta.org.au!kralizec.zeta.org.au!not-for-mail
From: bde@kralizec.zeta.org.au (Bruce Evans)
Newsgroups: comp.os.386bsd.misc
Subject: Re: Three ESDI drives possible?
Date: 31 Aug 1993 01:37:31 +1000
Organization: Kralizec Dialup Unix Sydney: +61-2-837-1183 V.32bis
Lines: 39
Message-ID: <25t6rrINNbng@kralizec.zeta.org.au>
References: <1993Aug20.023013.19454@sserve.cc.adfa.oz.au> <1993Aug20.155651.18766@leland.Stanford.EDU> <2574j5$65u@olivaw.apanix.apana.org.au> <25eo46INNrbi@kralizec.zeta.org.au> <25iils$9g1@hrd769.brooks.af.mil>
NNTP-Posting-Host: kralizec.zeta.org.au

In <25iils$9g1@hrd769.brooks.af.mil> burgess@hrd769.brooks.af.mil (Dave Burgess) writes:

>In article <25eo46INNrbi@kralizec.zeta.org.au> bde@kralizec.zeta.org.au (Bruce Evans) writes:
>}
>}The "extra interrupts" are caused by the driver sending some
>}initialization commands to the controller for and then waiting for the
>}controller to finish, all with wd interrupts disabled.  The controller
>...

>Do you mean like the problem that several wd user are reporting; wherein
>during periods of intense disk activity, the drive and controller and
>system somehow get out of sync and the system locks up?  This could

No, the initialization problems and the "extra interrupt" are one-off
problems caused by polling the controller instead of waiting for it to
interrupt.  All normal i/o is interrupt-driven.

>explain how this is happening to many folks.  I have noticed that I
>often have 6150 uSec timeouts...  Since this exceeds the threshold for
>reporting, I get the report.  

I haven't seen these problems (or used a version of the driver that
reports timeouts).

>BTW, I am running netBSD-0.9, and can rebuild a kernel at will (of
>course, Will likes me to ask first... :-)

The NetBSD driver is better than the 0.2.4 one.  I've been working on
the 0.2.4 one.  So far I haven't merged many of the NetBSD changes.
The problem areas in the NetBSD driver are inherited from the 0.2.4
driver.  These include incomplete checking of the controller status
(in general you have to check WDCS_READY (drive ready) and some other
bits as well as WDCS_BUSY (controller busy) for command completion;
this is usually not a problem because the controller doesn't interrupt
until everything is ready) and incomplete reset code (after a timeout
is detected, using reset to recover loses the drive geometry if the
geometry in the label is different from the default).
-- 
Bruce Evans  bde@kralizec.zeta.org.au