Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Dec 2001 11:24:59 -0800 (PST)
From:      Greg Whynott <gwhynott@sgi.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/32478: scsi/NIC drivers fail when using SMP kernel
Message-ID:  <200112031924.fB3JOxT32748@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         32478
>Category:       kern
>Synopsis:       scsi/NIC drivers fail when using SMP kernel
>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:   Mon Dec 03 11:30:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Greg Whynott
>Release:        4.4RELEASE
>Organization:
Alias|Wavefront
>Environment:
sorry n/a.  please see dmesg output.
>Description:
everything works as expected with UP kernel

pci option card drivers fail when using SMP kernel(excluding video).

Here is the letter I sent to freebsd-bugs that covers the description of the problem:

Includes dmesg and mptable output at bottom.


Hello-
        My intel (fxp) NIC drivers usually do not work when I have enabled a SMP
 kernel.  Is this a known problem with SMP kernels and device drivers in the 4.X
 RELEASE line?

If you don't care to read the background please skip to _EOB_

Few years ago I installed FreeBSD 4.2 RELEASE.  At the time I had a 2940UW optio
n card attached to a SCSI hard disk device used as my root fs device.  The main 
board has two PPRO 200 I686 type CPUs.  After hand crafting a new kernel and boo
ting with it I would see SCSI bus time outs as the system came up eventually the
  system would reboot after awhile but prior to mounting the root fs. ( I submit
ted a bug about this to the freebsd bug report page )  Thinking it was perhaps a
 driver having issues with SMP in this particular release I went back to not run
ning symmetrical processors,  all was good.

Now a few years later I have a desire to have both CPU's running.  I downloaded 
4.4 RELEASE thinking what issue may have been in the past RELEASE would be corre
cted.   This in not the case.  Same 'time out'  errors.  Now I tried a several t
hings to resolve this that I'll lightly touch on so not to make this letter into
 a book..  : Replaced the 2940UW with an old 2940, no diff : replaced 2940 with 
a 2940-160 (brand new), no diff. (tried cards in different slots as well)  Remov
ed SCSI subsystem altogether, replaced with IDE drive.

It boots!

  Happiness is short lived.  Now my screen fills up with "fxpX timed out." error
s.  I have one dual and one single Intel epro NIC card.  Placing these cards in diff
erent slots changes nothing.  Putting in another dual epro card (for a total of 
5 ethernet ports) changes things.  One of the ports on the Dual cards comes up, 
 as does the port on the single port NIC card,  the other 3 do not,   'fxpX time
 out' errors continue. 

Going back to single CPU kernel allows me to have all 5 ports up and up (3 cards
) and also allows me to use any 2 SCSI cards at once.  The only difference in th
e kernel conf is the two SMP lines.

_EOB_

Here is the output of mptable and dmesg while booted from both SMP and UP kernel
s.  The only difference in the kernel config files is the inclusion or exclusion
 of the two SMP lines.


===============================================================================

MPTable, version 2.0.15

-------------------------------------------------------------------------------

MP Floating Pointer Structure:

  location:                     BIOS
  physical address:             0x000f0920
  signature:                    '_MP_'
  length:                       16 bytes
  version:                      1.1
  checksum:                     0x57
  mode:                         Virtual Wire

-------------------------------------------------------------------------------

MP Config Table Header:

  physical address:             0x000f0934
  signature:                    'PCMP'
  base table length:            292
  version:                      1.1
  checksum:                     0xaf
  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
                 1       0x11    BSP, usable     6       1       7       0xfbff
                 0       0x11    AP, usable      6       1       7       0xfbff
--
Bus:            Bus ID  Type
                 0       ISA   
                 1       PCI   
--
I/O APICs:      APIC ID Version State           Address
                 2       0x11    usable          0xfec00000
--
I/O Ints:       Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN#
                ExtINT   conforms    conforms        0     0          2    0
                INT      conforms    conforms        0     1          2    1
                INT      conforms    conforms        0     0          2    2
                INT      conforms    conforms        0     3          2    3
                INT      conforms    conforms        0     4          2    4
                INT      conforms    conforms        0     5          2    5
                INT      conforms    conforms        0     6          2    6
                INT      conforms    conforms        0     7          2    7
                INT      conforms    conforms        0     8          2    8
                INT      conforms    conforms        0     9          2    9
                INT      conforms    conforms        0    10          2   10
                INT      conforms    conforms        0    11          2   11
                INT      conforms    conforms        0    12          2   12
                INT      conforms    conforms        0    13          2   13
                INT      conforms    conforms        0    14          2   14
                INT      conforms    conforms        0    15          2   15
                INT     active-lo       level        1  14:A          2   16
                INT     active-lo       level        1  13:A          2   17
                INT     active-lo       level        1  12:A          2   18
                INT     active-lo       level        1  11:A          2   19
                SMI      conforms    conforms        0     0          2   23
--
Local Ints:     Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN#
                ExtINT  active-hi        edge        0     0        255    0
                NMI     active-hi        edge        0     0        255    1

===============================================================================

Copyright (c) 1992-2001 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.4-RELEASE #0: Sun Dec  2 21:17:33 EST 2001
    root@vortex.fqdn.com:/usr/src/sys/compile/VORTEX-FW
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium Pro (198.95-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x617  Stepping = 7
  Features=0xfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV>
real memory  = 201326592 (196608K bytes)
avail memory = 192311296 (187804K bytes)
Changing APIC ID for IO APIC #0 from 0 to 2 on chip
Programming 24 pins in IOAPIC #0
IOAPIC #0 intpin 2 -> irq 0
FreeBSD/SMP: Multiprocessor motherboard
 cpu0 (BSP): apic id:  1, version: 0x00040011, at 0xfee00000
 cpu1 (AP):  apic id:  0, version: 0x00040011, at 0xfee00000
 io0 (APIC): apic id:  2, version: 0x00170011, at 0xfec00000
Preloaded elf kernel "kernel" at 0xc0369000.
Pentium Pro MTRR support enabled
md0: Malloc disk
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
IOAPIC #0 intpin 17 -> irq 2
pci0: <PCI bus> on pcib0
isab0: <Intel 82371SB PCI to ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX3 ATA controller> port 0xf000-0xf00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
pcib1: <DEC 21152 PCI-PCI bridge> at device 10.0 on pci0
pci1: <PCI bus> on pcib1
fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0xe000-0xe01f mem 0xd0000000-0xd00fffff,0xdf000000-0xdf000fff irq 11 at device 4.0 on pci1
fxp0: Ethernet address 00:90:27:3a:ae:96
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp1: <Intel Pro 10/100B/100+ Ethernet> port 0xe100-0xe11f mem 0xd0100000-0xd01fffff,0xdf001000-0xdf001fff irq 15 at device 5.0 on pci1
fxp1: Ethernet address 00:90:27:3a:ae:97
inphy1: <i82555 10/100 media interface> on miibus1
inphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pci0: <Matrox MGA Millennium 2064W graphics accelerator> at 13.0 irq 2
orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0
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
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
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x200>
APIC_IO: Testing 8254 interrupt delivery
APIC_IO: routing 8254 via IOAPIC #0 intpin 2
IP packet filtering initialized, divert enabled, rule-based forwarding disabled, default to deny, logging limited to 100 packets/entry by default
DUMMYNET initialized (010124)
IP Filter: v3.4.20 initialized.  Default = pass all, Logging = enabled
ata0-master: DMA limited to UDMA33, non-ATA66 compliant cable
ad0: 14594MB <ST315320A> [29651/16/63] at ata0-master WDMA2
acd0: CDROM <CD-ROM 48X/AKU> at ata0-slave using PIO4
Mounting root from ufs:/dev/ad0s1a
SMP: AP CPU #1 Launched!
IP Filter: v3.4.20 unloaded
fxp0: device timeout
fxp1: device timeout
fxp0: device timeout
fxp1: device timeout
fxp0: device timeout
fxp1: device timeout
fxp0: device timeout
fxp1: device timeout
fxp0: device timeout
fxp1: device timeout
fxp0: device timeout
fxp1: device timeout



This one is with NON SMP kernel:



===============================================================================

MPTable, version 2.0.15

-------------------------------------------------------------------------------

MP Floating Pointer Structure:

  location:                     BIOS
  physical address:             0x000f0920
  signature:                    '_MP_'
  length:                       16 bytes
  version:                      1.1
  checksum:                     0x57
  mode:                         Virtual Wire

-------------------------------------------------------------------------------

MP Config Table Header:

  physical address:             0x000f0934
  signature:                    'PCMP'
  base table length:            292
  version:                      1.1
  checksum:                     0xaf
  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
                 1       0x11    BSP, usable     6       1       7       0xfbff
                 0       0x11    AP, usable      6       1       7       0xfbff
--
Bus:            Bus ID  Type
                 0       ISA   
                 1       PCI   
--
I/O APICs:      APIC ID Version State           Address
                 2       0x11    usable          0xfec00000
--
I/O Ints:       Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN#
                ExtINT   conforms    conforms        0     0          2    0
                INT      conforms    conforms        0     1          2    1
                INT      conforms    conforms        0     0          2    2
                INT      conforms    conforms        0     3          2    3
                INT      conforms    conforms        0     4          2    4
                INT      conforms    conforms        0     5          2    5
                INT      conforms    conforms        0     6          2    6
                INT      conforms    conforms        0     7          2    7
                INT      conforms    conforms        0     8          2    8
                INT      conforms    conforms        0     9          2    9
                INT      conforms    conforms        0    10          2   10
                INT      conforms    conforms        0    11          2   11
                INT      conforms    conforms        0    12          2   12
                INT      conforms    conforms        0    13          2   13
                INT      conforms    conforms        0    14          2   14
                INT      conforms    conforms        0    15          2   15
                INT     active-lo       level        1  14:A          2   16
                INT     active-lo       level        1  13:A          2   17
                INT     active-lo       level        1  12:A          2   18
                INT     active-lo       level        1  11:A          2   19
                SMI      conforms    conforms        0     0          2   23
--
Local Ints:     Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN#
                ExtINT  active-hi        edge        0     0        255    0
                NMI     active-hi        edge        0     0        255    1

===============================================================================

Copyright (c) 1992-2001 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.4-RELEASE #0: Sun Dec  2 16:42:03 EST 2001
    root@vortex.fqdn.com:/usr/src/sys/compile/VORTEX-VLAN
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 198948365 Hz
CPU: Pentium Pro (198.95-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x617  Stepping = 7
  Features=0xfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV>
real memory  = 201326592 (196608K bytes)
avail memory = 192393216 (187884K bytes)
Preloaded elf kernel "kernel.good" at 0xc0359000.
Pentium Pro MTRR support enabled
md0: Malloc disk
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
Correcting Natoma config for non-SMP
isab0: <Intel 82371SB PCI to ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX3 ATA controller> port 0xf000-0xf00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
pcib1: <DEC 21152 PCI-PCI bridge> at device 10.0 on pci0
pci1: <PCI bus> on pcib1
fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0xe000-0xe01f mem 0xd0000000-0xd00fffff,0xdf000000-0xdf000fff irq 11 at device 4.0 on pci1
fxp0: Ethernet address 00:90:27:3a:ae:96
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp1: <Intel Pro 10/100B/100+ Ethernet> port 0xe100-0xe11f mem 0xd0100000-0xd01fffff,0xdf001000-0xdf001fff irq 15 at device 5.0 on pci1
fxp1: Ethernet address 00:90:27:3a:ae:97
inphy1: <i82555 10/100 media interface> on miibus1
inphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pci0: <Matrox MGA Millennium 2064W graphics accelerator> at 13.0 irq 15
orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0
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
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
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x200>
IP packet filtering initialized, divert enabled, rule-based forwarding enabled, default to deny, logging limited to 100 packets/entry by default
DUMMYNET initialized (010124)
IP Filter: v3.4.20 initialized.  Default = block all, Logging = enabled
ata0-master: DMA limited to UDMA33, non-ATA66 compliant cable
ad0: 14594MB <ST315320A> [29651/16/63] at ata0-master WDMA2
acd0: CDROM <CD-ROM 48X/AKU> at ata0-slave using PIO4
Mounting root from ufs:/dev/ad0s1a
IP Filter: v3.4.20 unloaded



>How-To-Repeat:
Install SMP kernel on simular hardware.

MainBoard: Tyan TITAN PRO dual Pentium Pro 200
SCSI HD (when it was in machine as root device): 9 gig Seagate Cheetah Model st39102lw Firmware 0004.

>Fix:

>Release-Note:
>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?200112031924.fB3JOxT32748>