STI, HLT in acpi_cpu_idle_c1
John Baldwin
jhb at FreeBSD.org
Fri Jun 25 09:40:52 PDT 2004
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 at 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 at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-current
mailing list