From owner-freebsd-current Thu Jun 4 17:05:05 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id RAA12694 for freebsd-current-outgoing; Thu, 4 Jun 1998 17:05:05 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from freebie.lemis.com (freebie.lemis.com [139.130.136.133]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id RAA12524 for ; Thu, 4 Jun 1998 17:04:21 -0700 (PDT) (envelope-from grog@freebie.lemis.com) Received: (from grog@localhost) by freebie.lemis.com (8.9.0/8.9.0) id JAA02086; Fri, 5 Jun 1998 09:33:49 +0930 (CST) Message-ID: <19980605093349.K768@freebie.lemis.com> Date: Fri, 5 Jun 1998 09:33:49 +0930 From: Greg Lehey To: shimon@simon-shapiro.org Cc: Michael Hancock , "freebsd-current@freebsd.org" , tcobb , Karl Pielorz , Bob Willcox , Mike Smith Subject: Re: DPT driver fails and panics with Degraded Array References: <19980604095717.A22406@freebie.lemis.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.91.1i In-Reply-To: ; from Simon Shapiro on Thu, Jun 04, 1998 at 12:16:35PM -0400 WWW-Home-Page: http://www.lemis.com/~grog Organization: LEMIS, PO Box 460, Echunga SA 5153, Australia Phone: +61-8-8388-8286 Fax: +61-8-8388-8725 Mobile: +61-41-739-7062 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Thu, 4 June 1998 at 12:16:35 -0400, Simon Shapiro wrote: > > On 04-Jun-98 Greg Lehey wrote: > > ... > >>>> 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? > > Actually this is a 2.2 (UP :-) problem. Not a 3.0, and not an SMP for sure. Good to hear. > Actually, SMP interrupt service is slow enough that this probably never has > a chance to show at all. No way. Murphy is particularly unforgiving when it comes to race conditions in interrupt handlers. Have 50 interrupts a second from two processors, and sooner or later you're going to hit it. 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