Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Aug 2003 17:19:24 -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.20030828171924.jhb@FreeBSD.org>
In-Reply-To: <20030828204541.703.qmail@kimchee.ssr.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 28-Aug-2003 Scott Ballantyne wrote:
> John Baldwin <jhb@FreeBSD.org> writes:
>> 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, thanks so much for your help! Unfortunately, the 4.8-p3 kernel
> doesn't link with this patch:
> 
> p_machdep.o: In function `start_ap':
> mp_machdep.o(.text+0x212c): undefined reference to `intr_disable'
> mp_machdep.o(.text+0x21d9): undefined reference to `intr_restore
> 
> I'm using the make buildkernel KERNCONF= method, if that makes any
> difference.

Ack, that patch was for current.  Try using
'eflags = read_eflags(); disable_intr();' in place of intr_disable()
and 'write_eflags(eflags);' in place of intr_restore().

-- 

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?XFMail.20030828171924.jhb>