From owner-freebsd-smp Sun Jan 19 01:04:22 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id BAA23920 for smp-outgoing; Sun, 19 Jan 1997 01:04:22 -0800 (PST) Received: from housing1.stucen.gatech.edu (ken@housing1.stucen.gatech.edu [130.207.52.71]) by freefall.freebsd.org (8.8.4/8.8.4) with ESMTP id BAA23915 for ; Sun, 19 Jan 1997 01:04:18 -0800 (PST) Received: (from ken@localhost) by housing1.stucen.gatech.edu (8.8.4/8.8.4) id EAA20041; Sun, 19 Jan 1997 04:04:11 -0500 (EST) From: Kenneth Merry Message-Id: <199701190904.EAA20041@housing1.stucen.gatech.edu> Subject: success!! To: smp@csn.net Date: Sun, 19 Jan 1997 04:04:10 -0500 (EST) Cc: smp@freebsd.org X-Mailer: ELM [version 2.4ME+ PL25 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-smp@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Well, I'm writing this from my machine, running X, with all of the cards installed an autoconfigured by the BIOS, with an APIC_IO kernel, using version 1.4 of the MP spec. So what happened? Well, I was recompiling my kernel, and noticed a few extraneous options in the config file that I had forgotten to delete. (just copied the generic kernel config file, and then deleted some things, and added options I needed) Also, I ran mptable tonight, with all the cards installed, and noticed that NINTR=15 had changed to NINTR=17. One of the extraneous options that I forgot to delete was options MATH_EMULATE. That was most likely the source of my X problems. So, I recompiled the kernel, booted, and then tried X, and everything seems to work. :) I installed an additional ethernet card last night, and it wasn't working properly with the SMP kernels. That was most likely because of the number of interrutps. Here is the current slot configuration, and the interrupts that the BIOS has (automatically) assigned: PCI Slot 1: SMC 10/100 (IRQ 14) (de1) PCI Slot 2: TRENDnet 10/100 (IRQ 3) (de0) PCI Slot 3: no card installed PCI Slot 4: Adaptec 3940UW (channel 1 - IRQ 5, channel 2 - IRQ 14) PCI Slot 5: Matrox Millenium (IRQ 5) ISA Slot: Gravis Ultrasound PnP Pro Here is the output of mptable -dmesg -verbose: =============================================================================== MPTable, version 2.0.5 looking for EBDA pointer @ 0x040e, found, searching EBDA @ 0x0009fc00 searching CMOS 'top of mem' @ 0x0009f800 (638K) searching default 'top of mem' @ 0x0009fc00 (639K) searching BIOS @ 0x000f0000 MP FPS found in BIOS @ physical addr: 0x000f60b0 ------------------------------------------------------------------------------- MP Floating Pointer Structure: location: BIOS physical address: 0x000f60b0 signature: '_MP_' length: 16 bytes version: 1.4 checksum: 0x8b mode: Virtual Wire ------------------------------------------------------------------------------- MP Config Table Header: physical address: 0x000f5caa signature: 'PCMP' base table length: 268 version: 1.4 checksum: 0xd5 OEM ID: 'OEM00000' Product ID: 'PROD00000000' OEM table pointer: 0x00000000 OEM table size: 0 entry count: 25 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 1 0x11 BSP, usable 6 1 7 0xfbff 0 0x11 AP, usable 6 1 7 0xfbff -- Bus: Bus ID Type 0 PCI 1 PCI 2 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 2 0 2 0 INT conforms conforms 2 1 2 1 INT conforms conforms 2 0 2 2 INT conforms conforms 2 4 2 4 INT conforms conforms 2 6 2 6 INT conforms conforms 2 7 2 7 INT conforms conforms 2 8 2 8 INT conforms conforms 2 9 2 9 INT conforms conforms 2 10 2 10 INT conforms conforms 2 11 2 11 INT conforms conforms 2 12 2 12 INT conforms conforms 2 15 2 15 INT active-lo level 1 4:A 2 19 INT active-lo level 1 5:A 2 16 INT active-lo level 0 11:A 2 17 INT active-lo level 0 12:A 2 16 INT active-lo level 0 13:A 2 19 -- Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID INT# ExtINT active-hi edge 2 0 255 0 NMI active-hi edge 2 0 255 1 ------------------------------------------------------------------------------- # SMP kernel config file options: options SMP # Symmetric MultiProcessor Kernel options APIC_IO # Symmetric (APIC) I/O options NCPU=2 # number of CPUs options NBUS=3 # number of busses options NAPIC=1 # number of IO APICs options NINTR=17 # number of INTs options SMP_INVLTLB # #options SMP_PRIVPAGES # BROKEN, DO NOT use! #options SMP_AUTOSTART # BROKEN, DO NOT use! #options SERIAL_DEBUG # com port debug output ------------------------------------------------------------------------------- dmesg output: Copyright (c) 1992-1996 FreeBSD Inc. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 3.0-SMP #0: Sun Jan 19 03:25:32 EST 1997 ken@panzer.res.gatech.edu:/usr/src/sys-SMP/compile/panzer FreeBSD/SMP: Multiprocessor motherboard cpu0 (BSP): apic id: 1, version: 0x00040011 cpu1 (AP): apic id: 0, version: 0x00040011 io0 (APIC): apic id: 2, version: 0x00170011 Calibrating clock(s) relative to mc146818A clock ... i8254 clock: 1193160 Hz CLK_USE_I8254_CALIBRATION not specified - using default frequency CPU: Pentium Pro (686-class CPU) Origin = "GenuineIntel" Id = 0x617 Stepping=7 Features=0xfbff,MTRR,PGE,MCA,CMOV> real memory = 134217728 (131072K bytes) avail memory = 129282048 (126252K bytes) DEVFS: ready for devices pcibus_setup(1): mode 1 addr port (0x0cf8) is 0x8000005c pcibus_setup(1a): mode1res=0x80000000 (0x80000000) pcibus_check: device 0 is there (id=12378086) Probing for devices on PCI bus 0: configuration mode 1 allows 32 devices. chip0 rev 2 on pci0:0 chip1 rev 1 on pci0:1:0 chip2 rev 0 on pci0:1:1 mapreg[20] type=1 addr=0000e800 size=0010. chip3 rev 2 on pci0:9 bridge from pci0 to pci1 through 1. mapping regs: io:2280d0d0 mem:fae0f980 pmem:fbf0fbf0 de0 rev 32 int a irq 17 on pci0:11 Freeing (NOT implimented) irq 3 for ISA cards. mapreg[10] type=1 addr=0000c800 size=0080. mapreg[14] type=0 addr=f9000000 size=0080. reg16: ioaddr=0xc800 size=0x80 de0: 21140A [10-100Mb/s] pass 2.0 de0: address 00:40:05:2f:cf:ec de0: enabling 100baseTX port bpf: de0 attached de1 rev 18 int a irq 16 on pci0:12 Freeing (NOT implimented) irq 14 for ISA cards. mapreg[10] type=1 addr=0000c400 size=0080. mapreg[14] type=0 addr=f8800000 size=0080. reg16: ioaddr=0xc400 size=0x80 de1: SMC 9332 21140 [10-100Mb/s] pass 1.2 de1: address 00:00:c0:53:3d:e7 de1: enabling 10baseT port bpf: de1 attached vga0 rev 1 int a irq 19 on pci0:13 Freeing (NOT implimented) irq 5 for ISA cards. mapreg[10] type=0 addr=f8000000 size=4000. mapreg[14] type=0 addr=fb000000 size=800000. pci0: uses 8405248 bytes of memory from f8000000 upto fbffffff. pci0: uses 272 bytes of I/O space from c400 upto e80f. pci0: subordinate busses from 1 upto 1. Probing for devices on PCI bus 1: ahc0 rev 0 int a irq 19 on pci1:4 Freeing (NOT implimented) irq 5 for ISA cards. mapreg[10] type=1 addr=0000d800 size=0100. [pci1 uses memory from f9800000 to faefffff] mapreg[14] type=0 addr=fa000000 size=1000. reg20: virtual=0xf98a9000 physical=0xfa000000 size=0x1000 ahc0: Reading SEEPROM...done. ahc0: aic7880 Wide Channel A, SCSI Id=7, 16 SCBs ahc0: Reseting Channel A ahc0: Downloading Sequencer Program...Done ahc0: Probing channel A ahc0 waiting for scsi devices to settle ahc0: target 0 using 16Bit transfers ahc0: target 0 synchronous at 20.0MHz, offset = 0x8 (ahc0:0:0): "QUANTUM XP34550W LXQ1" type 0 fixed SCSI 2 sd0(ahc0:0:0): Direct-Access 4341MB (8890760 512 byte sectors) sd0(ahc0:0:0): with 5899 cyls, 10 heads, and an average 150 sectors/track ahc1 rev 0 int a irq 16 on pci1:5 Freeing (NOT implimented) irq 14 for ISA cards. mapreg[10] type=1 addr=0000d400 size=0100. [pci1 uses memory from f9800000 to faefffff] mapreg[14] type=0 addr=f9800000 size=1000. reg20: virtual=0xf98aa000 physical=0xf9800000 size=0x1000 using shared irq 16. ahc1: Reading SEEPROM...done. ahc1: aic7880 Wide Channel B, SCSI Id=7, 16 SCBs ahc1: Reseting Channel A ahc1: Downloading Sequencer Program...Done ahc1: Probing channel A ahc1 waiting for scsi devices to settle ahc1: target 4 synchronous at 10.0MHz, offset = 0xf (ahc1:4:0): "PLEXTOR CD-ROM PX-12CS 1.00" type 5 removable SCSI 2 cd0(ahc1:4:0): CD-ROM can't get the size pci1: uses 8192 bytes of memory from f9800000 upto fa000fff. pci1: uses 512 bytes of I/O space from d400 upto d8ff. 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 on isa sio0: type 16550A sio1: disabled, not probed. lpt0: disabled, not probed. lpt1: disabled, not probed. psm0: current command byte:0047 psm0: status after reset 00 02 64 psm: status b1 03 c8 (get_mouse_buttons) psm0: status 00 02 64 psm0 at 0x60-0x64 irq 12 on motherboard psm0: device ID 0, 3 buttons? fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fdc0: NEC 72065B fd0: 1.44MB 3.5in Checking for GUS Plug-n-Play ... Board Vendor ID: GRV0001 Board Serial Number: 00000001 gus0 at 0x220 irq 11 drq 5 flags 0x6 on isa at 0x32c dma 6,5 at 0x220 irq 11 dma 5,6 npx0 on motherboard npx0: INT 16 interface imasks: bio c0090040, tty f0031012, net f0031012 BIOS Geometries: 0:0228fe3f 0..552=553 cylinders, 0..254=255 heads, 1..63=63 sectors 0 accounted for Device configuration finished. Considering FFS root f/s. configure() finished. DEVFS: ready to run Enabled INTs: 1, 2, 4, 6, 8, 11, 12, 16, 17, 19, imen: 0x00f4e6a9 bpf: tun0 attached bpf: tun1 attached bpf: tun2 attached bpf: sl0 attached bpf: lo0 attached IP packet filtering initialized, divert enabled, logging limited to 100 packets/entry sd0s1: type 0x7, start 63, end = 2040254, size 2040192 : OK sd0s2: type 0xa5, start 2040255, end = 8883944, size 6843690 : OK WARNING: / was not properly dismounted. SMP: All idle procs online. SMP: Starting 1st AP! SMP: AP CPU #1 LAUNCHED!! Starting Scheduling... SMP: TADA! CPU #1 made it into the scheduler!. SMP: All 2 CPU's are online! =============================================================================== And here is my kernel config file. If anyone sees any stupid options in here, please tell me! :) =============================================================================== # # GENERIC -- Generic 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 # # # 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: GENERIC,v 1.77.2.1 1996/12/21 02:10:50 se Exp $ machine "i386" # cpu "I386_CPU" # cpu "I486_CPU" cpu "I586_CPU" cpu "I686_CPU" ident panzer maxusers 128 # 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 UCONSOLE #Allow users to grab the console options USERCONFIG #boot -c editor options VISUAL_USERCONFIG #visual boot -c editor options CHILD_MAX=128 options OPEN_MAX=128 options SYSVSHM options SYSVSEM options SYSVMSG options KTRACE options MROUTING options IPFIREWALL options IPFIREWALL_VERBOSE options "IPFIREWALL_VERBOSE_LIMIT=100" options IPDIVERT options DEVFS options "MAXMEM=(128*1024)" options MAXCONS=16 # options AHC_TAGENABLE # options AHC_SCBPAGING_ENABLE options AHC_ALLOW_MEMIO options SMP # Symmetric MultiProcessor Kernel options APIC_IO # Symmetric (APIC) I/O options NCPU=2 # number of CPUs options NBUS=3 # number of busses options NAPIC=1 # number of IO APICs options NINTR=17 # number of INTs options SMP_INVLTLB # #options SMP_PRIVPAGES # BROKEN, DO NOT use! #options SMP_AUTOSTART # BROKEN, DO NOT use! #options SERIAL_DEBUG # com port debug output 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 # controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr # disk wd0 at wdc0 drive 0 # disk wd1 at wdc0 drive 1 # A single entry for any of these controllers (ncr, ahb, ahc, amd) is # sufficient for any number of installed devices. controller ahc0 #options "AHC_FORCE_PIO" # Some motherboards choke on MemI/O, # so use PIO in the ahc driver in the # generic kernel. 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 controller snd0 device gus0 at isa? vector gusintr # device gus0 at isa? port 0x220 irq 11 drq 1 flags 0x3 vector gusintr # syscons is the default console driver, resembling an SCO console device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr # Mandatory, don't remove device npx0 at isa? port "IO_NPX" irq 13 vector npxintr device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr device sio1 at isa? disable port "IO_COM2" tty irq 3 vector siointr device lpt0 at isa? disable port? tty irq 7 vector lptintr device lpt1 at isa? disable port? tty device psm0 at isa? 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 pseudo-device loop pseudo-device ether pseudo-device log pseudo-device sl 1 # ijppp uses tun instead of ppp device #pseudo-device ppp 1 pseudo-device tun 3 pseudo-device pty 128 pseudo-device gzip # Exec gzipped a.out's pseudo-device bpfilter 4 pseudo-device snp 3 =============================================================================== Well, I'm glad everything is working, and sorry I didn't realize what was going on a little sooner. The PCI bus explanations by Steve, Terry, Doug, and others have been most helpful. If there are any more tests I can run, just lemme know. :) Thanks, Ken -- Kenneth Merry ken@ulc199.residence.gatech.edu Disclaimer: I don't speak for GTRI, GT, or Elvis.