Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2000 15:39:00 +0100
From:      Daniel Bye <Daniel.Bye@uk.uu.net>
To:        'Nicholas Basila' <nbasila@revenio.com>
Cc:        questions@freebsd.org
Subject:   RE: SMP kernel for 4.1-STABLE
Message-ID:  <FB7CAC781DB6D311BEE800805FE6FADA2F4BE9@camexch4.cam.uk.internal>

next in thread | raw e-mail | index | archive | help
Thanks for the pointers.  I'm afraid I can't see anything that looks like
the setting I need to change...  I'm using Compaq SmartArray 221 rev 4.16,
if that sheds any light.

BTW, the previous attempts did at least get as far as checking the number
INTs on the system, and the number was exactly 37.  If there were fewer than
that provided for in the kernel, it froze even quicker than the current SMP
kernel!

Any further hints would be most gratefully (even greedily) received!

Dan

> -----Original Message-----
> From: Nicholas Basila [mailto:nbasila@revenio.com]
> Sent: Wednesday, September 20, 2000 3:20 PM
> To: Daniel.Bye@uk.uu.net
> Cc: questions@freebsd.org
> Subject: Re: SMP kernel for 4.1-STABLE
> 
> 
> Hi:
> 
>     I ran into the same problem you're having with a Compaq. 
> Here's the
> portion from my 4.1 kernel:
> 
> # To make an SMP kernel, the next two are needed
> options         SMP                     # Symmetric 
> MultiProcessor Kernel
> options         APIC_IO                 # Symmetric (APIC) I/O
> # Optionally these may need tweaked, (defaults shown):
> options         NCPU=2                  # number of CPUs
> options         NBUS=4                  # number of busses
> options         NAPIC=1                 # number of IO APICs
> options         NINTR=32                # number of INTs
> 
> 
>     I think you have to set NINTR to 32 on the compaq - for I 
> got an error
> about setting it too low (it said there were 32 instead of 24).
>     Normally, builind an SMP kernel on FreeBSD is easy. 
> However, there is
> one catch here - you have to go into the Compaq system 
> utility and change a
> setting. I can't remember what it is exactly, but it was 
> something along the
> lines of changing the mapping tables to "full mapping" . . . 
> unfortunately,
> I don't remember the exact setting. The kernel will not boot 
> without this
> change. If you can't find the setting, send me an email and 
> I'll try to
> figure out what it is.
> 
> 
> Nicholas Basila
> >
> > -----Original Message-----
> > From: Daniel Bye [mailto:Daniel.Bye@uk.uu.net]
> > Sent: Wednesday, September 20, 2000 6:40 AM
> > To: 'questions@freebsd.org'
> > Subject: SMP kernel for 4.1-STABLE
> >
> >
> > Hi all,
> >
> > I have a Compaq 1850R dual PIII 550, running 4.1-STABLE 
> quite happily with
> > almost any (sensible) uniprocessor kernel I give it.  As it's a dual
> > processor machine, I thought I'd try building an SMP 
> kernel.  Easy.  Only
> > no, it wasn't.  Using the current UP build as the basis, I 
> added various
> > values for the appropriate fields.  But no matter what I 
> gave it, the new
> > kernel never boots.  What am I doing wrong?
> >
> > Here are the relevant lines from the system file:
> >
> > # To make an SMP kernel, the next two are needed
> > options         SMP                     # Symmetric 
> MultiProcessor Kernel
> > options         APIC_IO                 # Symmetric (APIC) I/O
> > # Optionally these may need tweaked, (defaults shown):
> > options         NCPU=2                  # number of CPUs
> > options         NBUS=4                  # number of busses
> > options         NAPIC=4                       # number of IO APICs
> > options         NINTR=37                # number of INTs
> >
> > The thing tells me if I give it too few INTs, and says that 
> probing found
> > 37.  But no matter what combination of numbers for the NBUS 
> and NAPIC
> > fields, it never does more than this:
> >
> > (All normal up to memory check, then...)
> > Programming 35 pins in IOAPIC #0
> > IOAPIC #0 intpin 2 -> irq 0
> > IOAPIC #0 intpin 31 -> irq 2
> >
> > And there it stops.
> >
> > This is the dmesg output from a good kernel:
> >
> > Copyright (c) 1992-2000 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.1-RELEASE #5: Mon Sep 18 12:22:00 GMT 2000
> >     danielby@ecam082.cam.uk.internal:/usr/src/sys/compile/ECAM082
> > Timecounter "i8254"  frequency 1193182 Hz
> > Timecounter "TSC"  frequency 548336360 Hz
> > CPU: Pentium III/Pentium III Xeon/Celeron (548.34-MHz 686-class CPU)
> >   Origin = "GenuineIntel"  Id = 0x673  Stepping = 3
> >
> >
> Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR
> ,PGE,MCA,CMOV,
> > PAT,PSE36,MMX,FXSR,XMM>
> > real memory  = 671072256 (655344K bytes)
> > avail memory = 648982528 (633772K bytes)
> > Preloaded elf kernel "kernel.SINGLE" at 0xc0302000.
> > Pentium Pro MTRR support enabled
> > md0: Malloc disk
> > npx0: <math processor> on motherboard
> > npx0: INT 16 interface
> > pcib0: <Intel 82443BX host to PCI bridge (AGP disabled)> on 
> motherboard
> > pci0: <PCI bus> on pcib0
> > pci0: <unknown card> (vendor=0x1000, dev=0x000f) at 6.0 irq 5
> > pci0: <unknown card> (vendor=0x1000, dev=0x000f) at 6.1 irq 10
> > tl0: <Compaq Netelligent 10/100 Proliant> port 0x2c00-0x2c0f mem
> > 0xc6efccf0-0xc6efccff irq 11 at device 7.0 on pci0
> > tl0: Ethernet address: 00:50:8b:cc:30:d9
> > miibus0: <MII bus> on tl0
> > ukphy0: <Generic IEEE 802.3u media interface> on miibus0
> > ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
> > tlphy0: <ThunderLAN 10baseT media interface> on miibus0
> > tlphy0:  10base2/BNC, 10base5/AUI
> > pci0: <ATI Mach64-GV graphics accelerator> at 8.0
> > pci0: <unknown card> (vendor=0x0e11, dev=0xa0f0) at 9.0
> > pcib1: <IBM 82351 PCI-PCI bridge> at device 13.0 on pci0
> > pci1: <PCI bus> on pcib1
> > ida0: <Compaq Smart Array 221 controller> port 0x3000-0x30ff mem
> > 0xb8000000-0xbfffffff,0xc6ffff00-0xc6ffffff irq 15 at 
> device 0.0 on pci1
> > ida0: drives=1 firm_rev=4.16
> > idad0: <Compaq Logical Drive> on ida0
> > idad0: 34727MB (71122560 sectors), blocksize=512
> > isab0: <Intel 82371AB PCI to ISA bridge> at device 20.0 on pci0
> > isa0: <ISA bus> on isab0
> > pci0: <Intel PIIX4 ATA controller> at 20.1
> > pci0: <Intel 82371AB/EB (PIIX4) USB controller> at 20.2 irq 0
> > chip1: <Intel 82371AB Power management controller> at 
> device 20.3 on pci0
> > eisa0: <EISA bus> on motherboard
> > mainboard0: <CPQ0679 (System Board)> on eisa0 slot 0
> > fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 
> drq 2 on isa0
> > fdc0: FIFO enabled, 8 bytes threshold
> > fd0: <1440-KB 3.5" drive> on fdc0 drive 0
> > atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
> > atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
> > kbd0 at atkbd0
> > vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 
> 0xa0000-0xbffff on isa0
> > sc0: <System console> at flags 0x100 on isa0
> > sc0: VGA <16 virtual consoles, flags=0x300>
> > sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
> > sio0: type 16550A
> > sio1 at port 0x2f8-0x2ff irq 3 on isa0
> > sio1: type 16550A
> > ppc0: cannot reserve I/O port range
> > no devsw (majdev=0 bootdev=0xa0200000)
> > Mounting root from ufs:/dev/idad0s1a
> >
> >
> >
> > And this is what I see when I do mptable:
> >
> >
> >
> > MP Floating Pointer Structure:
> >
> >   location: BIOS
> >   physical address: 0x000f4ff0
> >   signature: '_MP_'
> >   length: 16 bytes
> >   version: 1.4
> >   checksum: 0x00
> >   mode: Virtual Wire
> >
> > 
> --------------------------------------------------------------
> ------------
> --
> > ---
> >
> > MP Config Table Header:
> >
> >   physical address: 0x000f2b9f
> >   signature: 'PCMP'
> >   base table length: 420
> >   version: 1.4
> >   checksum: 0x6a
> >   OEM ID: 'COMPAQ  '
> >   Product ID: 'PROLIANT    '
> >   OEM table pointer: 0x00000000
> >   OEM table size: 0
> >   entry count: 44
> >   local APIC address: 0xfee00000
> >   extended table length: 76
> >   extended table checksum: 86
> >
> > 
> --------------------------------------------------------------
> ------------
> --
> > ---
> >
> > MP Config Base Table Entries:
> >
> > --
> > Processors: APIC ID Version State Family Model Step
> > Flags
> > 0 0x10 BSP, usable 6 2 1
> > 0x0381
> > 0 0x10 AP, usable 6 7 3
> > 0x383fbff
> > --
> > Bus: Bus ID Type
> > 0 PCI
> > 9 ISA
> > --
> > I/O APICs: APIC ID Version State Address
> > 8 0x11 usable 0xfec00000
> > --
> > I/O Ints: Type Polarity    Trigger Bus ID IRQ APIC ID PIN#
> > INT active-lo       level      0 13:A       8   17
> > INT active-lo       level      0 13:B       8   16
> > INT active-lo       level      0 13:C       8   17
> > INT active-lo       level      0 13:D       8   16
> > INT active-lo       level      0 15:A       8   19
> > INT active-lo       level      0 15:B       8   18
> > INT active-lo       level      0 15:C       8   19
> > INT active-lo       level      0 15:D       8   18
> > INT active-lo       level      0 16:A       8   21
> > INT active-lo       level      0 16:B       8   20
> > INT active-lo       level      0 16:C       8   21
> > INT active-lo       level      0 16:D       8   20
> > INT active-lo       level      0 18:A       8   23
> > INT active-lo       level      0 18:B       8   22
> > INT active-lo       level      0 18:C       8   23
> > INT active-lo       level      0 18:D       8   22
> > INT active-lo       level      0 6:A       8   31
> > INT active-lo       level      0 6:B       8   30
> > INT active-lo       level      0 7:A       8   29
> > INT active-lo       level      0 8:A       8   28
> > INT active-lo        edge      0 9:A       8   13
> > INT active-hi        edge      9    1       8    1
> > INT active-hi        edge      9    0       8    2
> > INT active-hi        edge      9    3       8    3
> > INT active-hi        edge      9    4       8    4
> > INT active-hi        edge      9    5       8    5
> > INT active-hi        edge      9    6       8    6
> > INT active-hi        edge      9    7       8    7
> > INT active-hi        edge      9    8       8    8
> > INT active-hi       level      9    9       8    9
> > INT active-hi        edge      9   10       8   10
> > INT active-hi        edge      9   11       8   11
> > INT active-hi        edge      9   12       8   12
> > INT active-lo        edge      9   13       8   13
> > INT active-hi        edge      9   14       8   14
> > INT active-hi        edge      9   15       8   15
> > --
> > Local Ints: Type Polarity    Trigger Bus ID IRQ APIC ID PIN#
> > ExtINT conforms    conforms     9    0
> > 255    0
> > NMI conforms    conforms     9    0
> > 255    1
> >
> > 
> --------------------------------------------------------------
> ------------
> --
> > ---
> >
> > MP Config Extended Table Entries:
> >
> > Extended Table HOSED!
> >
> >
> > So, in more specific terms, what are the correct values for NBUS and
> NAPIC?
> > And how do you derive those numbers from the mptable 
> output?  I read the
> > stuff at 
> http://people.freebsd.org/>; ~fsmp/SMP/getstarted.html, 
> including
> the
> > rogue hardware 
> tips, but made no sense of it.  (This is the first time I
> > have tried to build an SMP kernel, so must confess I don't 
> really know
> what
> > I'm doing...)
> >
> > Dan Bye
> >
> >
> >
> >
> >
> >
> > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > with "unsubscribe freebsd-questions" in the body of the message
> >
> 


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




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