Skip site navigation (1)Skip section navigation (2)
Date:      Thu,  4 Jan 2001 00:37:16 +0100 (CET)
From:      aledema@iol.it
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/24059: USB support broken in SMP kernel
Message-ID:  <20010103233716.A82F25E68@libero.sunshine.ale>
Resent-Message-ID: <200101032340.f03Ne1O74188@freefall.freebsd.org>

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

>Number:         24059
>Category:       kern
>Synopsis:       USB support broken in SMP kernel
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jan 03 15:40:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Alessandro de Manzano
>Release:        FreeBSD 4.2-STABLE i386
>Organization:
no
>Environment:


FreeBSD libero.sunshine.ale 4.2-STABLE FreeBSD 4.2-STABLE #0: Mon Jan  1
20:43:09 CET 2001 root@libero.sunshine.ale:/usr/obj/usr/src/sys/LIBERO2 i386

Motherboard Microstar MS-6321 (694D Pro), dual socket 370 ATX board.
Running with #2 Intel Celeron 433Mhz CPUs and 96Mb RAM.

Here is the "usbdevs -v output":

Controller /dev/usb0:
addr 1: self powered, config 1, UHCI root hub(0x0000), VIA(0x0000), rev
0x0100
 port 1 powered
 port 2 powered
Controller /dev/usb1:
addr 1: self powered, config 1, UHCI root hub(0x0000), VIA(0x0000), rev
0x0100
 port 1 powered
 port 2 powered


Here is the complete dmesg output (I've enabled USB debug options in kernel)

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.2-STABLE #0: Mon Jan  1 20:43:09 CET 2001
    root@libero.sunshine.ale:/usr/obj/usr/src/sys/LIBERO2
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium II/Pentium II Xeon/Celeron (434.32-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x665  Stepping = 5
  Features=0x183fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>
real memory  = 100597760 (98240K bytes)
avail memory = 93802496 (91604K bytes)
Programming 24 pins in IOAPIC #0
IOAPIC #0 intpin 2 -> irq 0
FreeBSD/SMP: Multiprocessor motherboard
 cpu0 (BSP): apic id:  0, version: 0x00040011, at 0xfee00000
 cpu1 (AP):  apic id:  1, version: 0x00040011, at 0xfee00000
 io0 (APIC): apic id:  2, version: 0x00170011, at 0xfec00000
Preloaded elf kernel "kernel" at 0xc03d0000.
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
pcib2: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib2
pci1: <VGA-compatible display device> at 0.0 irq 16
isab0: <VIA 82C686 PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 82C686 ATA66 controller> port 0xc000-0xc00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0: <VIA 83C572 USB controller> port 0xc400-0xc41f irq 19 at device 7.2 on pci0
uhci0: LegSup = 0x00002010
uhci_run: setting run=0
uhci_run: done cmd=0x80 sts=0x20
uhci_run: setting run=1
uhci_run: done cmd=0x81 sts=0x0
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <VIA 83C572 USB controller> port 0xc800-0xc81f irq 19 at device 7.3 on pci0
uhci1: LegSup = 0x00002010
uhci_run: setting run=0
uhci_run: done cmd=0x80 sts=0x20
uhci_run: setting run=1
uhci_run: done cmd=0x81 sts=0x0
usb1: <VIA 83C572 USB controller> on uhci1
usb1: USB revision 1.0
uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
pcm0: <VIA VT82C686A AC'97 Audio> port 0xd400-0xd403,0xd000-0xd003,0xcc00-0xccff irq 18 at device 7.5 on pci0
atapci1: <Promise ATA100 controller> port 0xe800-0xe83f,0xe400-0xe403,0xe000-0xe007,0xdc00-0xdc03,0xd800-0xd807 mem 0xdc000000-0xdc01ffff irq 18 at device 12.0 on pci0
ata2: at 0xd800 on atapci1
ata3: at 0xe000 on atapci1
pci0: <unknown card> (vendor=0x104c, dev=0x8020) at 13.0 irq 19
xl0: <3Com 3c900-COMBO Etherlink XL> port 0xec00-0xec3f irq 17 at device 15.0 on pci0
xl0: Ethernet address: 00:10:4b:b0:38:07
xl0: selecting 10baseT transceiver, half duplex
pcib1: <Host to PCI bridge> on motherboard
pci2: <PCI bus> on pcib1
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
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model IntelliMouse, device ID 3
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: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
ppi0: <Parallel I/O> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
APIC_IO: Testing 8254 interrupt delivery
APIC_IO: routing 8254 via IOAPIC #0 intpin 2
IP packet filtering initialized, divert enabled, rule-based forwarding enabled, default to accept, logging limited to 100 packets/entry by default
DUMMYNET initialized (000608)
BRIDGE 990810, have 8 interfaces
-- index 1  type 6 phy 0 addrl 6 addr 00.10.4b.b0.38.07
IP Filter: v3.4.8 initialized.  Default = pass all, Logging = enabled
SMP: AP CPU #1 Launched!
ad0: 9787MB <QUANTUM FIREBALLlct10 10> [19885/16/63] at ata0-master UDMA66
acd0: CDROM <NEC CD-ROM DRIVE:287> at ata1-master using WDMA2
Mounting root from ufs:/dev/ad0s1a




>Description:

I installed FreeBSD 4.1-release on this machine (from WC CDs) correctly, and
immediately after recompiling kernel it viewed fine my Logitech Pilot Wheel
USB Mouse. It was real plug'n'play too (using /etc/usbd.conf). All fine.
(I used it also on a precedent K6-400 machine with 4.1-S)

After cvsupping to 4.2-stable and recompiling all enabling SMP support in
kernel I noted that USB mouse stopped working.
I tried recompiling just a kernel without SMP options and the mouse resumed
normal operation.
I booted many times using SMP kernel and non-SMP kernel, every time the
behavior of USB was reproduced.

So I think there are some problems with USB code when running in SMP
kernels.

Plugging the mouse in the USB port under SMP kernel caused also interval
console messages from usbd about resetting the usb ports itself (I guess
it's something about retrying handshaking or similar).


>How-To-Repeat:

Use a SMP kernel and some USB device (to be honest I tried with
mouse only, till now)


>Fix:

use a non-SMP kernel


>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?20010103233716.A82F25E68>