Date: Thu, 04 Jun 1998 10:41:23 -0700 From: Mike Smith <mike@smith.net.au> To: shimon@simon-shapiro.org Cc: Mike Smith <mike@smith.net.au>, Michael Hancock <michaelh@cet.co.jp>, "freebsd-current@freebsd.org" <freebsd-current@FreeBSD.ORG>, tcobb <tcobb@staff.circle.net>, Karl Pielorz <kpielorz@tdx.co.uk>, Bob Willcox <bob@luke.pmr.com>, Greg Lehey <grog@lemis.com> Subject: Re: DPT driver fails and panics with Degraded Array Message-ID: <199806041741.KAA00849@dingo.cdrom.com> In-Reply-To: Your message of "Thu, 04 Jun 1998 12:19:44 EDT." <XFMail.980604121944.shimon@simon-shapiro.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> > 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. -- \\ Sometimes you're ahead, \\ Mike Smith \\ sometimes you're behind. \\ mike@smith.net.au \\ The race is long, and in the \\ msmith@freebsd.org \\ end it's only with yourself. \\ msmith@cdrom.com 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?199806041741.KAA00849>