Date: Fri, 05 Jun 1998 16:01:08 -0400 (EDT) From: Simon Shapiro <shimon@simon-shapiro.org> To: Mike Smith <mike@smith.net.au> Cc: Greg Lehey <grog@lemis.com>, Bob Willcox <bob@luke.pmr.com>, 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: <XFMail.980605160108.shimon@simon-shapiro.org> In-Reply-To: <199806041741.KAA00849@dingo.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 04-Jun-98 Mike Smith wrote: >> >> On 03-Jun-98 Mike Smith wrote: >> >> .... >> >> >> 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. >> > >> > It would be an issue if the buf struct had been recycled, but hadn't >> > yet been marked busy, or if the buf pointer was invalid (the business >> > check is the very first check in biodone()). >> >> Is this code surrounded by splhigh() ? If not, it is entirely possible >> for >> that to happen. Due to the caching/quieing nature of the DPT, >> especially >> the PM3334, and the multi-threaded nature of the DPT driver, for several >> interrupts to be issued less than 1us apart. This means that there will >> be >> several hardware interrupts and several soft interrupts generated in a >> very >> short period of time. > > The possibilities I mentioned above are only relevant if the DPT is > calling biodone() more than once in error. If you're confident that > this is not happening, then the above is not relevant. I will not swear the driver does not call biodone twice (in error), but I could never prove that it does. Neither from logical/code analysis, nor from observation. Simon --- Sincerely Yours, Simon Shapiro Shimon@Simon-Shapiro.ORG 770.265.7340 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?XFMail.980605160108.shimon>