Date: Wed, 13 May 1998 17:03:07 -0700 (PDT) From: Ted Mittelstaedt the Almighty System Admin <tedm@portsoft.com> To: FreeBSD-gnats-submit@FreeBSD.ORG, tedm@portsoft.com Subject: kern/6628: Tyan Tomcat III locks SMP-GENERIC kernel on boot Message-ID: <199805140003.RAA00450@test.portsoft.com>
next in thread | raw e-mail | index | archive | help
>Number: 6628 >Category: kern >Synopsis: Tyan Tomcat III locks SMP-GENERIC kernel, 3.0-980426-SNAP >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed May 13 17:10:03 PDT 1998 >Last-Modified: >Originator: Ted Mittelstaedt >Organization: Portland Software Inc. >Release: FreeBSD 3.0-980426-SNAP i386 >Environment: Installed FreeBSD 3.0 snapshot on a Tyan Tomcat III system, 64MB of ram, 1 Adaptec 2940 PCI Ultra SCSI card, 1 Adaptec 2940 PCI Ultra Wide SCSI card with a 8GB Seagate Wide SCSI disk on it, motherboard BIOS version 4.01. Output of dmesg and mptable follows: Copyright (c) 1992-1998 FreeBSD Inc. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 3.0-980426-SNAP #0: Sun Apr 26 10:14:16 GMT 1998 root@make.ican.net:/usr/src/sys/compile/GENERIC Timecounter "i8254" frequency 1193182 Hz cost 2537 ns CPU: Pentium (199.43-MHz 586-class CPU) Origin = "GenuineIntel" Id = 0x52c Stepping=12 Features=0x3bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,APIC> real memory = 67108864 (65536K bytes) avail memory = 62423040 (60960K bytes) Probing for devices on PCI bus 0: chip0: <Intel 82439> rev 0x03 on pci0.0.0 chip1: <Intel 82371SB PCI to ISA bridge> rev 0x01 on pci0.7.0 ide_pci0: <Intel PIIX3 Bus-master IDE controller> rev 0x00 on pci0.7.1 chip2: <Intel 82371SB USB host controller> rev 0x01 int d irq 15 on pci0.7.2 fxp0: <Intel EtherExpress Pro 10/100B Ethernet> rev 0x02 int a irq 15 on pci0.17.0 fxp0: Ethernet address 00:a0:c9:5a:7c:c1 vga0: <Cirrus Logic GD5446 SVGA controller> rev 0x00 int a irq 12 on pci0.18.0 ahc0: <Adaptec 2940 Ultra SCSI host adapter> rev 0x00 int a irq 9 on pci0.19.0 ahc0: aic7880 Wide Channel, SCSI Id=7, 16 SCBs ahc0: waiting for scsi devices to settle scbus0 at ahc0 bus 0 sd0 at scbus0 target 0 lun 0 sd0: <SEAGATE ST19171W 0023> type 0 fixed SCSI 2 sd0: Direct-Access 8683MB (17783112 512 byte sectors) ahc1: <Adaptec 2940 Ultra SCSI host adapter> rev 0x00 int a irq 11 on pci0.20.0 ahc1: aic7880 Single Channel, SCSI Id=7, 16 SCBs ahc1: waiting for scsi devices to settle scbus1 at ahc1 bus 0 cd0 at scbus1 target 3 lun 0 cd0: <NEC CD-ROM DRIVE:462 1.16> type 5 removable SCSI 2 cd0: CD-ROM can't get the size st0 at scbus1 target 6 lun 0 st0: <ARCHIVE Python 00095-001 5.45> type 1 removable SCSI 2 st0: Sequential-Access density code 0x13, drive empty Probing for devices on the ISA bus: sc0 at 0x60-0x6f irq 1 on motherboard sc0: VGA color <16 virtual consoles, flags=0x0> sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A lpt0 at 0x378-0x37f irq 7 on isa lpt0: Interrupt-driven port lp0: TCP/IP capable interface lpt1 at 0x378-0x37f on isa lpt1 not probed due to I/O address conflict with lpt0 at 0x378 mse0 not found at 0x23c psm0 not found at 0x60 fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fdc0: FIFO enabled, 8 bytes threshold fd0: 1.44MB 3.5in wdc0 not found at 0x1f0 wdc1 not found at 0x170 npx0 on motherboard npx0: INT 16 interface Intel Pentium F00F detected, installing workaround changing root device to sd0s1a WARNING: / was not properly dismounted. =============================================================================== MPTable, version 2.0.12 ------------------------------------------------------------------------------- MP Floating Pointer Structure: location: BIOS physical address: 0x000f5a60 signature: '_MP_' length: 16 bytes version: 1.4 checksum: 0xc3 mode: Virtual Wire ------------------------------------------------------------------------------- MP Config Table Header: physical address: 0x000f5a74 signature: 'PCMP' base table length: 396 version: 1.1 checksum: 0x3a OEM ID: 'OEM00000' Product ID: 'PROD00000000' OEM table pointer: 0x00000000 OEM table size: 0 entry count: 28 local APIC address: 0xfee00000 extended table length: 0 extended table checksum: 0 ------------------------------------------------------------------------------- MP Config Base Table Entries: -- Processors: APIC ID Version State Family Model Step Flags 0 0x11 BSP, usable 5 2 1 0x07bf 1 0x11 AP, usable 5 2 1 0x07bf -- Bus: Bus ID Type 0 PCI 1 ISA -- I/O APICs: APIC ID Version State Address 2 0x11 usable 0xfec00000 -- I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID INT# ExtINT conforms conforms 1 0 2 0 INT conforms conforms 1 1 2 1 INT conforms conforms 1 0 2 2 INT conforms conforms 1 3 2 3 INT conforms conforms 1 4 2 4 INT conforms conforms 1 5 2 5 INT conforms conforms 1 6 2 6 INT conforms conforms 1 7 2 7 INT conforms conforms 1 8 2 8 INT conforms conforms 1 9 2 9 INT conforms conforms 1 10 2 10 INT conforms conforms 1 11 2 11 INT conforms conforms 1 12 2 12 INT conforms conforms 1 13 2 13 INT conforms conforms 1 14 2 14 INT conforms conforms 1 15 2 15 INT active-lo level 0 20:A 2 16 INT active-lo level 0 19:A 2 17 INT active-lo level 0 18:A 2 18 INT active-lo level 0 17:A 2 19 SMI conforms conforms 1 0 2 23 -- Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID INT# ExtINT conforms conforms 0 0:A 255 0 NMI conforms conforms 0 0:A 255 1 ------------------------------------------------------------------------------- # SMP kernel config file options: # Required: options SMP # Symmetric MultiProcessor Kernel options APIC_IO # Symmetric (APIC) I/O # Useful: #options SMP_AUTOSTART # start the additional CPUs during boot # Optional (built-in defaults will work in most cases): #options NCPU=2 # number of CPUs #options NBUS=2 # number of busses #options NAPIC=1 # number of IO APICs #options NINTR=24 # number of INTs # Rogue hardware: # # Tyan Tomcat II: #options SMP_TIMER_NC # # # SuperMicro P6DNE: #options SMP_TIMER_NC # =============================================================================== # SMP kernel config file options: # Required: options SMP # Symmetric MultiProcessor Kernel options APIC_IO # Symmetric (APIC) I/O # Useful: #options SMP_AUTOSTART # start the additional CPUs during boot # Optional (built-in defaults will work in most cases): #options NCPU=2 # number of CPUs #options NBUS=2 # number of busses #options NAPIC=1 # number of IO APICs #options NINTR=24 # number of INTs # Rogue hardware: # # Tyan Tomcat II: #options SMP_TIMER_NC # # # SuperMicro P6DNE: #options SMP_TIMER_NC # =============================================================================== >Description: After compiling the SMP kernel and installing it, a reboot produces a list of all the devices, then as soon as the second CPU is started the system locks up. I cold-booted several times, once it actually started running /etc/rc but locked about a half-second into it. Rebooting the system under a uniprocessor kernel that I compiled works fine without any detected problems. >How-To-Repeat: Compile the SMP kernel and restart, the kernel configuration file I used is as follows: # # SMP-GENERIC -- Smp machine with WD/AHx/NCR/BTx family disks # # For more information read the handbook part System Administration -> # Configuring the FreeBSD Kernel -> The Configuration File. # The handbook is available in /usr/share/doc/handbook or online as # latest version from the FreeBSD World Wide Web server # <URL:http://www.FreeBSD.ORG/> # # An exhaustive list of options and more detailed explanations of the # device lines is present in the ./LINT configuration file. If you are # in doubt as to the purpose or necessity of a line, check first in LINT. # # $Id: SMP-GENERIC,v 1.11 1998/04/22 18:18:14 mjacob Exp $ machine "i386" # SMP does NOT support 386/486 CPUs. #cpu "I386_CPU" #cpu "I486_CPU" cpu "I586_CPU" # cpu "I686_CPU" ident TESTME maxusers 30 # Create a SMP capable kernel (mandatory options): options SMP # Symmetric MultiProcessor Kernel options APIC_IO # Symmetric (APIC) I/O # Optional, these are the defaults: #options NCPU=2 # number of CPUs #options NBUS=4 # number of busses #options NAPIC=1 # number of IO APICs #options NINTR=24 # number of INTs # Lets always enable the kernel debugger for SMP. options DDB # SMP shouldn't need x87 emulation, disable by default. #options MATH_EMULATE #Support for x87 emulation options INET #InterNETworking options FFS #Berkeley Fast Filesystem options NFS #Network Filesystem options MSDOSFS #MSDOS Filesystem options "CD9660" #ISO 9660 Filesystem options PROCFS #Process filesystem options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!] options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device options BOUNCE_BUFFERS #include support for DMA bounce buffers options UCONSOLE #Allow users to grab the console options FAILSAFE #Be conservative options USERCONFIG #boot -c editor options VISUAL_USERCONFIG #visual boot -c editor config kernel root on sd0 controller isa0 # controller eisa0 controller pci0 controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr disk fd0 at fdc0 drive 0 disk fd1 at fdc0 drive 1 # tape ft0 at fdc0 drive 2 # options "CMD640" # work around CMD640 chip deficiency # controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr # disk wd0 at wdc0 drive 0 # disk wd1 at wdc0 drive 1 # controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr # disk wd2 at wdc1 drive 0 # disk wd3 at wdc1 drive 1 # options ATAPI #Enable ATAPI support for IDE bus # options ATAPI_STATIC #Don't do it as an LKM # device wcd0 #IDE CD-ROM # A single entry for any of these controllers (ncr, ahb, ahc, amd) is # sufficient for any number of installed devices. # controller ncr0 # controller amd0 # controller ahb0 controller ahc0 # controller isp0 # controller bt0 at isa? port "IO_BT0" bio irq ? vector bt_isa_intr # controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr # controller aha0 at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr # controller aic0 at isa? port 0x340 bio irq 11 vector aicintr # controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr # controller nca1 at isa? port 0x350 bio irq 5 vector ncaintr # controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr controller scbus0 device sd0 # device od0 #See LINT for possible `od' options. device st0 device cd0 #Only need one of these, the code dynamically grows # device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr # device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr # controller matcd0 at isa? port 0x230 bio # device scd0 at isa? port 0x230 bio # syscons is the default console driver, resembling an SCO console device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver #device vt0 at isa? port "IO_KBD" tty irq 1 vector pcrint #options PCVT_FREEBSD=210 # pcvt running on FreeBSD >= 2.0.5 options XSERVER # include code for XFree86 #options FAT_CURSOR # start with block cursor # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines #options PCVT_SCANSET=2 # IBM keyboards are non-std device npx0 at isa? port "IO_NPX" irq 13 vector npxintr # # Laptop support (see LINT for more options) # # device apm0 at isa? disable flags 0x31 # Advanced Power Management # PCCARD (PCMCIA) support #controller card0 #device pcic0 at card? #device pcic1 at card? device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr device sio2 at isa? disable port "IO_COM3" tty irq 5 vector siointr device sio3 at isa? disable port "IO_COM4" tty irq 9 vector siointr device lpt0 at isa? port? tty irq 7 vector lptintr # device lpt1 at isa? port? tty # device mse0 at isa? port 0x23c tty irq 5 vector mseintr # device psm0 at isa? disable port "IO_KBD" conflicts tty irq 12 vector psmintr # Order is important here due to intrusive probes, do *not* alphabetize # this list of network interfaces until the probes have been fixed. # Right now it appears that the ie0 must be probed before ep0. See # revision 1.20 of this file. # device de0 device fxp0 # device vx0 # device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr # device ed1 at isa? port 0x300 net irq 5 iomem 0xd8000 vector edintr # device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000 vector ieintr # device ie1 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr # device ep0 at isa? port 0x300 net irq 10 vector epintr # device ex0 at isa? port? net irq? vector exintr # device fe0 at isa? port 0x300 net irq ? vector feintr # device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr # device lnc0 at isa? port 0x280 net irq 10 drq 0 vector lncintr # device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr # device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr pseudo-device loop pseudo-device ether pseudo-device sl 1 # iijppp uses tun instead of ppp device #pseudo-device ppp 1 pseudo-device tun 1 pseudo-device pty 16 pseudo-device gzip # Exec gzipped a.out's # KTRACE enables the system-call tracing facility ktrace(2). # This adds 4 KB bloat to your kernel, and slightly increases # the costs of each syscall. options KTRACE #kernel tracing >Fix: Maybe bring back the option "SMP_TIMER_NC" to fix it? It looks like an earlier SMP kernel did work on this hardware until the APIC_IO became required. Unfortunately, I only had about 4 hours to test on this machine - if 3.0 had run SMP we would have used this as a server, but since it won't the system is consigned to use as an NT system and won't be generally available in the future. Oh well. >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805140003.RAA00450>