Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Aug 2003 15:23:25 -0400 (EDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Scott Ballantyne <sdb@ssr.com>
Cc:        freebsd-smp@freebsd.org
Subject:   Re: Unpredictable problems with APIC renumbering
Message-ID:  <XFMail.20030828152325.jhb@FreeBSD.org>
In-Reply-To: <20030828162539.497.qmail@kimchee.ssr.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This message is in MIME format
--_=XFMail.1.5.4.FreeBSD:20030828124535:861=_
Content-Type: text/plain; charset=us-ascii


On 28-Aug-2003 Scott Ballantyne wrote:
> John Baldwin <jhb@FreeBSD.org> writes:
> 
>> > Is there a fix or work-a-round for this problem?
>> 
>> It's not a problem you need to worry about and is common to many
>> MP motherboards.
>> 
> 
> It's odd that it only happens occasionally. The precise message is:
> 
> 
> Programming 24 pins in IOAPIC #0
> IOAPIC #0 intpin 2 -> IRQ 0
> AP#1 (PHY #1) failed!
> panic y/n? [y]
> mp-lock = 0000001; cpuid=0; 1apicid=0

This is a different message and has nothing to do with the
I/O APIC code.  Try the attached patch.

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

--_=XFMail.1.5.4.FreeBSD:20030828124535:861=_
Content-Disposition: attachment; filename="mp.patch"
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=us-ascii; name=mp.patch; SizeOnDisk=862

Index: mp_machdep.c
===================================================================
RCS file: /usr/cvs/src/sys/i386/i386/mp_machdep.c,v
retrieving revision 1.214
diff -u -r1.214 mp_machdep.c
--- mp_machdep.c	12 Aug 2003 17:01:10 -0000	1.214
+++ mp_machdep.c	28 Aug 2003 16:44:51 -0000
@@ -2259,6 +2259,7 @@
 	int     vector;
 	int     cpus;
 	u_long  icr_lo, icr_hi;
+	register_t eflags;
 
 	POSTCODE(START_AP_POST);
 
@@ -2277,6 +2278,7 @@
 	 * bug), CPU waiting for STARTUP IPI. OR this INIT IPI might be
 	 * ignored.
 	 */
+	eflags = intr_disable();
 
 	/* setup the address for the target AP */
 	icr_hi = lapic.icr_hi & ~APIC_ID_MASK;
@@ -2332,6 +2334,7 @@
 	while (lapic.icr_lo & APIC_DELSTAT_MASK)
 		 /* spin */ ;
 	u_sleep(200);		/* wait ~200uS */
+	intr_restore(eflags);
 
 	/* wait for it to start */
 	set_apic_timer(5000000);/* == 5 seconds */

--_=XFMail.1.5.4.FreeBSD:20030828124535:861=_--
End of MIME message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20030828152325.jhb>