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>