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>
