Date: Mon, 20 Mar 2000 19:25:08 -0800 From: Mike Smith <msmith@freebsd.org> To: Mike Smith <msmith@freebsd.org> Cc: "John W. DeBoskey" <jwd@unx.sas.com>, freebsd-current@freebsd.org, Brad Chisholm <sasblc@unx.sas.com> Subject: Re: AMI MegaRAID lockup? not accepting commands. Message-ID: <200003210325.TAA70819@mass.cdrom.com> In-Reply-To: Your message of "Mon, 20 Mar 2000 19:18:50 PST." <200003210318.TAA64793@mass.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
A couple of clarifications on the last message: > Thus, when you see it printed as 0, somewhere between the test and the > printf the controller has updated the flag and indicated it's busy. That should of course be "not busy". > I'd be guessing that the current loop (100k iterations) is probably > completing far sooner than 1s. You could confirm this by grabbing a > timestamp at the beginning of amr_start and then checking again at the > point where it bails out. If that's the case, try cutting the initial > value of i down to 10,000 and insert a DELAY(100) in the "did not get > mailbox" case. I didn't use DELAY() initially because I wasn't sure it would work correctly if called before interrupts are enabled. That was probably a stupid mistake; I would try the above suggestion first as I suspect it'll get you going. Not that I consider this particuarly optimal; busy-waiting for the controller is a terrible waste of the host CPU. A better solution would probably defer the command and try again a short time later, but let's see if this works first. -- \\ Give a man a fish, and you feed him for a day. \\ Mike Smith \\ Tell him he should learn how to fish himself, \\ msmith@freebsd.org \\ and he'll hate you for a lifetime. \\ 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?200003210325.TAA70819>