Date: Fri, 25 Jun 2004 12:40:57 -0400 From: John Baldwin <jhb@FreeBSD.org> To: freebsd-current@FreeBSD.org Cc: Julian Elischer <julian@elischer.org> Subject: Re: STI, HLT in acpi_cpu_idle_c1 Message-ID: <200406251240.57658.jhb@FreeBSD.org> In-Reply-To: <FE045D4D9F7AED4CBFF1B3B813C85337054EC4CF@mail.sandvine.com> References: <FE045D4D9F7AED4CBFF1B3B813C85337054EC4CF@mail.sandvine.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 25 June 2004 12:25 pm, Gerrit Nagelhout wrote:
> John Baldwin wrote:
> > This is why it isn't receiving interrupts. It thinks one is
> > still being
> > serviced and is waiting on the EOI. That is IPI_HARDCLOCK again.
> > Hmm, try this hack (you can turn idle_hlt back on if you want
> > since it doesn't
> > seem to have an effect):
> >
> > Index: intr_machdep.c
> > ===================================================================
> > RCS file: /usr/cvs/src/sys/i386/i386/intr_machdep.c,v
> > retrieving revision 1.6
> > diff -u -r1.6 intr_machdep.c
> > --- intr_machdep.c 28 May 2004 17:50:07 -0000 1.6
> > +++ intr_machdep.c 25 Jun 2004 15:42:00 -0000
> > @@ -184,6 +184,10 @@
> > clkintr_pending = 1;
> >
> > if (ih != NULL && ih->ih_flags & IH_FAST) {
> > +#if 1
> > + isrc->is_pic->pic_disable_source(isrc);
> > + isrc->is_pic->pic_eoi_source(isrc);
> > +#endif
> > /*
> > * Execute fast interrupt handlers directly.
> > * To support clock handlers, if a handler registers
> > @@ -202,7 +206,11 @@
> > else
> > ih->ih_handler(ih->ih_argument);
> > }
> > +#if 0
> > isrc->is_pic->pic_eoi_source(isrc);
> > +#else
> > + isrc->is_pic->pic_disable_source(isrc);
> > +#endif
> > error = 0;
> > critical_exit();
> > } else {
> >
> > --
> > John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
> > "Power Users Use the Power to Serve" = http://www.FreeBSD.org
>
> This patch seems to have broken something with the aac driver.
> I get the following message over and over on bootup:
>
> aac0: COMMAND 0xca593a14 TIMEOUT AFTER 40 SECONDS
> aac0: COMMAND 0xca593a8c TIMEOUT AFTER 40 SECONDS
> aac0: COMMAND 0xca593b04 TIMEOUT AFTER 40 SECONDS
> aac0: COMMAND 0xca593b7c TIMEOUT AFTER 40 SECONDS
> aac0: COMMAND 0xca593bf4 TIMEOUT AFTER 40 SECONDS
> aac0: COMMAND 0xca593c6c TIMEOUT AFTER 40 SECONDS
> aac0: COMMAND 0xca593ce4 TIMEOUT AFTER 40 SECONDS
> aac0: COMMAND 0xca593d5c TIMEOUT AFTER 40 SECONDS
> aac0: COMMAND 0xca593dd4 TIMEOUT AFTER 40 SECONDS
> aac0: COMMAND 0xca593e4c TIMEOUT AFTER 40 SECONDS
> aac0: COMMAND 0xca593ec4 TIMEOUT AFTER 40 SECONDS
Odd, all it does is eoi fast interrupts earlier. Oh, there's a bug. :( In
the second hunk, change 'pic_disable_source' to 'pic_enable_source'.
--
John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200406251240.57658.jhb>
