From owner-freebsd-bugs Wed Sep 4 9:20:58 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 614E437B405 for ; Wed, 4 Sep 2002 09:20:06 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8BA8A43E7B for ; Wed, 4 Sep 2002 09:20:05 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g84GK5JU087547 for ; Wed, 4 Sep 2002 09:20:05 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g84GK5se087546; Wed, 4 Sep 2002 09:20:05 -0700 (PDT) Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BD16237B400 for ; Wed, 4 Sep 2002 09:17:41 -0700 (PDT) Received: from www.freebsd.org (www.FreeBSD.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 56B2E43E72 for ; Wed, 4 Sep 2002 09:17:41 -0700 (PDT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.12.4/8.12.4) with ESMTP id g84GHeOT065820 for ; Wed, 4 Sep 2002 09:17:40 -0700 (PDT) (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.12.4/8.12.4/Submit) id g84GHegO065819; Wed, 4 Sep 2002 09:17:40 -0700 (PDT) Message-Id: <200209041617.g84GHegO065819@www.freebsd.org> Date: Wed, 4 Sep 2002 09:17:40 -0700 (PDT) From: Glenn Campbell To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-1.0 Subject: misc/42414: Booting SMP with 2 Xeon CPUs on Intel SE7500CW2 Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 42414 >Category: misc >Synopsis: Booting SMP with 2 Xeon CPUs on Intel SE7500CW2 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Sep 04 09:20:03 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Glenn Campbell >Release: 4.6.2 Release >Organization: >Environment: FreeBSD vimy.v-net.org 4.6.2-RELEASE FreeBSD 4.6.2-RELEASE #6: Thu Aug 29 12:32:59 ADT 2002 root@vimy.v-net.org:/usr/src/sys/compile/VIMY i386 >Description: This is output from boot: ======================================================================== i386 Copyright (c) 1992-2002 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 4.6-STABLE #3: Sat Jul 13 19:35:25 GMT 2002 root@intel.kn.vutbr.cz:/usr/obj/usr/src/sys/01 Timecounter "i8254" frequency 1193182 Hz CPU: Pentium 4 (1794.19-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf24 Stepping = 4 Features=0x3febfbff,ACC> real memory = 1073217536 (1048064K bytes) avail memory = 1039933440 (1015560K bytes) Programming 24 pins in IOAPIC #0 IOAPIC #0 intpin 2 -> irq 0 Programming 24 pins in IOAPIC #1 Programming 24 pins in IOAPIC #2 AP #1 (PHY# 6) failed! panic y/n? [y] ====================================================================== I have flashed the bios to attempt a fix. (Intel bios version 1.14) This did not fix the problem. I have also attempted Terry Lambert's fixes from freebsd-smp mailinglist as follows: 1) Change: int mp_ncpus; /* # of CPUs, including BSP */ To: volatile int mp_ncpus; /* # of CPUs, including BSP */ In mp_machdep.c; it could be that the compiler options you are using are causing the value to end up being cached in a register in the loop (you would have to examine the assembly code to see if this were the case). 2) In locore.s, change: begin: /* set up bootstrap stack */ movl _proc0paddr,%esp /* location of in-kernel pages */ addl $UPAGES*PAGE_SIZE,%esp /* bootstrap stack end location */ xorl %eax,%eax /* mark end of frames */ movl %eax,%ebp movl _proc0paddr,%eax movl _IdlePTD, %esi movl %esi,PCB_CR3(%eax) testl $CPUID_PGE, R(_cpu_feature) jz 1f movl %cr4, %eax orl $CR4_PGE, %eax movl %eax, %cr4 1: To: begin: /* set up bootstrap stack */ movl _proc0paddr,%esp /* location of in-kernel pages */ addl $UPAGES*PAGE_SIZE,%esp /* bootstrap stack end location */ xorl %eax,%eax /* mark end of frames */ movl %eax,%ebp movl _proc0paddr,%eax movl _IdlePTD, %esi movl %esi,PCB_CR3(%eax) testl $CPUID_PGE, R(_cpu_feature) jz 1f /* * DISABLE PGE/GPE on Intel/AMD; eat performance hit on CR3 reload * in exchange for non-stale TLB contents on bogus motherboard with * bad MMU hardware and/or wiring and/or undocumented hardware bug. */ /* movl %cr4, %eax */ /* orl $CR4_PGE, %eax */ /* movl %eax, %cr4 */ 1: 3) Add "options DISABLE_PSE" to the config file, and rebuild the kernel. YMMV (of course). -- Terry None of these fixes worked. >How-To-Repeat: If the kernel is compiled with these options turned up the system panics booting the 2nd CPU: #options SMP # Symmetric MultiProcessor Kernel #options APIC_IO # Symmetric (APIC) I/O >Fix: unknown at present >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message