Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Jun 1998 09:57:17 +0930
From:      Greg Lehey <grog@lemis.com>
To:        Mike Smith <mike@smith.net.au>, Bob Willcox <bob@luke.pmr.com>
Cc:        shimon@simon-shapiro.org, Karl Pielorz <kpielorz@tdx.co.uk>, tcobb <tcobb@staff.circle.net>, "freebsd-current@freebsd.org" <freebsd-current@FreeBSD.ORG>, Michael Hancock <michaelh@cet.co.jp>
Subject:   Re: DPT driver fails and panics with Degraded Array
Message-ID:  <19980604095717.A22406@freebie.lemis.com>
In-Reply-To: <199806031828.LAA00592@dingo.cdrom.com>; from Mike Smith on Wed, Jun 03, 1998 at 11:28:22AM -0700
References:  <19980603073200.A16652@pmr.com> <199806031828.LAA00592@dingo.cdrom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed,  3 June 1998 at 11:28:22 -0700, Mike Smith wrote:
>> On Wed, Jun 03, 1998 at 12:54:43PM +0930, Greg Lehey wrote:
>>> On Mon,  1 June 1998 at 20:51:51 -0400, Simon Shapiro wrote:
>>>> On 29-May-98 Mike Smith wrote:
>>>>
>>>>>> I am routinely running a Dual DPT with 38 drives on 6 busses.  On
>>>>>> 3.0-CURRENT SMP.  The system did lose disk drives, either
>>>>>> intentionally, or by accident.  I cannot confirm any of Mr. Cobb's
>>>>>> finding.  I have not been funished with any data, including the
>>>>>> panic point, which I suspect is not in the DPT code.  I am still
>>>>>> waiting for such data.
>>>>>
>>>>> I'd just like to point out that the "biodone: buffer not busy" panic
>>>>> doesn't come from the DPT driver, but may be caused by it calling
>>>>> biodone() on a buffer that the system does not believe is busy.
>>>
>>> Why would a driver call biodone on a buffer that doens't belong to it?
>>
>> Probably not relavent, but in the DPT device driver that I wrote for AIX
>> I had to put some pretty ugly validity checks in the interrupt code to
>> prevent my driver from trying to do an iodone (AIX's version of biodone)
>> on already completed (or purged, I don't remember for sure...its been
>> over a year now) commands.  Seems that the DPT firmware would (on
>> occasion) interrupt with a status packet that pointed to a ccb that my
>> driver had already completed.  As I recall this would only happen under
>> heavy load and it was pretty intermittant.  As far as I know, it was
>> never actually fixed.
>
> Actually, this is *extremely* relevant, if the firmware is still doing
> it and the DPT driver isn't aware of this.

This would normally cause a 'biodone: buffer already done' message,
which is a warning, not a panic.  The only way I could think of this
happening on a valid buffer (apart from the obvious of calling it
while it wasn't busy) would be if something messed around with other
buffer flags.  I haven't been following this thread very
carefully--were the panics associated with SMP only?  If so, how is
mutual exclusion performed in the bottom half of SMP drivers?

Greg
--
See complete headers for address and phone numbers
finger grog@lemis.com for PGP public key

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980604095717.A22406>