Re: STI, HLT in acpi_cpu_idle_c1

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Fri, 25 Jun 2004 12:40:57 -0400
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
> > _at__at_ -184,6 +184,10 _at__at_
> >  		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
> > _at__at_ -202,7 +206,11 _at__at_
> >  			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
Received on Fri Jun 25 2004 - 14:40:51 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:59 UTC