Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Sep 2002 19:50:07 +0100
From:      Chris Luke <chrisy@flix.net>
Cc:        smp@freebsd.org
Subject:   Re: For those with P4 SMP problems..
Message-ID:  <20020923185007.GA40537@flix.net>
In-Reply-To: <3D8F48FB.F3DBE738@mindspring.com>
References:  <XFMail.20020923094001.jhb@FreeBSD.org> <3D8F48FB.F3DBE738@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert wrote (on Sep 23):
> John Baldwin wrote:
> > > The theory is that the BIOS has the corect information, but in the
> > > wrong order, and FreeBSD cares about the order, but Linux and Windows

Okay, here's something else to stir the pot, I have a Compaq Evo 6000
with 2x2GHz Xeon's. The mp_table is broken, as per Compaq standards.
2nd processor doesn't boot. No panics, but the cpu is reported by
the kernel. But no "CPU #x launched!" message at the end of kernel
boot.

This is 4.6-STABLE as of the start of Septemeber (which was when I
was last playing with it, I've left it/waited for someone else to
find the problem - I was erring on the side of "It's Compaq, it's
bound to be broken"). Anyway, the above issue seems similar-but-not-
the-same to this thread.

Something gets started, because start_ap is called, and just for
the sake of it, I added some printf's to show this, and that it 
returned okay:

number of APs: 1
start_ap called on logical cpu #1, physical cpu #6
AP 1 allegedly started okay
FreeBSD/SMP: Multiprocessor motherboard
 cpu0 (BSP): apic id:  0, version: 0x00050014, at 0xfee00000
 cpu1 (AP):  apic id:  6, version: 0x00050014, at 0xfee00000
 io0 (APIC): apic id:  8, version: 0x00178020, at 0xfec00000


The "called" message is early in start_ap(), the "allegedly" is after the
call to start_ap():
---
                  CHECK_PRINT("trace");           /* show checkpoints */
+                 printf("AP %d allegedly started okay\n", x);
  
                  /* record its version info */
                  cpu_apic_versions[x] = cpu_apic_versions[0];
---


If indeed the 2nd processor gets booted, it's almost as though it
never sees the lock on the kernel released, so never does the stuff
that prints that "launched!" message. 

I think I saw it boot up with the 2nd CPU once, but it was shortlived -
the 2nd processor went away, almost as though I had imagined it
(with "top", the only processes that were on CPU 1 were ones that had
never run after startup - as they woke up, they all shifted to
cpu 0 and new processes were always on cpu 0).

mptable appears to agree with the output of acpidump, at least as far
as processors and their apic ID's (and that hyperthreading is disabled).
Can provide on request.

Slight twist: This is my workstation in London, UK - I'm in Boston, US,
so all my hacking has been with the cooperation of colleagues :)

Also, it may be unrelated, but "clk" and "rtc" show twice as many irq's/s
as I'd expect, when displayed with "systat -vmstat". 200Hz and 256Hz,
respectively.

The machine otherwise runs fine, with an SMP kernel - I'm sending this
mail from it now. Just one cpu.

Oh, another oddity, that may point to it being a Compaq-shonky
issue - sometimes a warm boot will cause the BIOS to throw up
"Processor initilization errors" on either 4, 2 or 1 processor(s),
regardless of the setting of hyperthreading. The word "initialization" 
is spelled as typed too. Cold booting fixes it.

(Given the choice, I'd have walked down the street and bought a m/b
and bits and built the machine myself, but companies must have their
procurement policies... grrr)

Cheers for any light,
Chris.
-- 
== chrisy@flix.net

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?20020923185007.GA40537>