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>