Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Oct 2002 10:52:25 -0400 (EDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        John Gillis <zefram@zefram.net>
Cc:        FreeBSD-SMP@FreeBSD.org
Subject:   RE: Compaq Proliant DL580
Message-ID:  <XFMail.20021023105225.jhb@FreeBSD.org>
In-Reply-To: <20021022221533.A28477-100000@brodie.zefram.net>

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

On 23-Oct-2002 John Gillis wrote:
>       I wrote in a week or two ago about hanging problems with the
> FreeBSD 4.7 kernel on SMP boot of a dual Xeon 700 2MB cache, but receieved
> no responses. I decided to try out the new SMPng, and I got excited when
> mptable didn't report my extended tables hosed... but the boot still
> failed.
>       After putting some debugging information in both kernels, I found
> the place where the hang occurs, whether this helps or not. In both
> kernels, it is in the same place:
> 
> It fails in the function start_ap, specifically line 2146 of
> sys/i386/i386/mp_machdep.c
> 
> A while loop is entered, and apparently the condition never changes from
> true. Here are the lines up to the problem area, which is designated with
> a star.
> 
> -----------------------------
> 
>         /* do an INIT IPI: assert RESET */
>         icr_lo = lapic.icr_lo & 0xfff00000;
>         lapic.icr_lo = icr_lo | 0x0000c500;
> 
>         /* wait for pending status end */
> *        while (lapic.icr_lo & APIC_DELSTAT_MASK)
>                  /* spin */ ;

This is where we send an interrupt to the other CPU to "wake it up"
and then wait for our local APIC on the boot processor to say that
it has delivered the interrupt.

> -----------------------------
> 
>       If there's anything I can do to help out diagnose this problem, I
> want to. I want to make sure this works for the good of FreeBSD and for my
> own. Right now my partner is trying to convince me to switch to Redhat, on
> which this platform works 100%. Anything I can do to help or further
> diagnose, please contact me. I've included my mptables output and also the
> dmesg from the booting uniprocessor kernel (SMP doesn't get far enough to
> mount the hard drives). Thanks,
>               John

If you could setup a serial console to get the dmesg output of an SMP
kernel prior to the hang that might be helpful.  Also, if the kernel
messages from RedHat say anything about APIC ID's that might also be
helpful as well.

-- 

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

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




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