FreeBSD 8.0 RELEASE USB deadlocks?

Ali Mashtizadeh mashtizadeh at gmail.com
Sat Dec 5 19:26:53 UTC 2009


Is anyone seeing deadlocks with USB devices on 8 RELEASE? This is a
definite regression from 7.1 and 7.2 for me. I had just upgraded my
laptop an HP NX6125, AMD Turion 64, ATI Xpress 200M Chipset.

Anytime I insert or remove a USB device, WIFI chipset (broadcom with
ndis driver)/Bluetooth, External USB hard drive,  The system becomes
completely unresponsive. If you look at the top output below my
attempt to run a zpool import on the Western digital hard drive I have
has stopped in tx->tx and I can't kill the process.


--- dmesg ---
ohci0: <ATI SB400 USB Controller> mem 0xd8400000-0xd8400fff irq 19 at
device 19.0 on
pci0
ohci0: [ITHREAD]
usbus0: <ATI SB400 USB Controller> on ohci0
ohci1: <ATI SB400 USB Controller> mem 0xd8401000-0xd8401fff irq 19 at
device 19.1 on
pci0
ohci1: [ITHREAD]
usbus1: <ATI SB400 USB Controller> on ohci1
ehci0: <ATI SB400 USB 2.0 controller> mem 0xd8402000-0xd8402fff irq 19
at device 19.2
 on pci0
ehci0: [ITHREAD]
usbus2: EHCI version 1.0
usbus2: <ATI SB400 USB 2.0 controller> on ehci0
....
ugen0.1: <ATI> at usbus0
uhub0: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <ATI> at usbus1
uhub1: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
ugen2.1: <ATI> at usbus2
uhub2: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
--- END ---

--- usbconfig ---
ugen0.1: <OHCI root HUB ATI> at usbus0, cfg=255 md=HOST spd=FULL (12Mbps) pwr=ON
ugen1.1: <OHCI root HUB ATI> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen2.1: <EHCI root HUB ATI> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
ugen1.2: <Fingerprint Sensor vendor 0x08ff> at usbus1, cfg=0 md=HOST
spd=FULL (12Mbps) pwr=ON
ugen2.2: <External HDD Western Digital> at usbus2, cfg=0 md=HOST
spd=HIGH (480Mbps) pwr=ON
--- END ---


--- top ---
 1970 root          1  45    0 14636K  2312K tx->tx   0:00  0.00% zpool
--- END ---

-------------
/home/ali# usbconfig -u 2 -a 2 dump_curr_config_desc
ugen2.2: <External HDD Western Digital> at usbus2, cfg=0 md=HOST
spd=HIGH (480Mbps) p r=ON


 Configuration index 0

    bLength = 0x0009
    bDescriptorType = 0x0002
    wTotalLength = 0x0039
    bNumInterfaces = 0x0002
    bConfigurationValue = 0x0001
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00c0
    bMaxPower = 0x0001

    Interface 0
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0000
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0008
      bInterfaceSubClass = 0x0006
      bInterfaceProtocol = 0x0050
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0007
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0002
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 1
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0001
      bInterfaceClass = 0x0003
      bInterfaceSubClass = 0x0000
      bInterfaceProtocol = 0x0000
      iInterface = 0x0005  <WD HID INTERFACE>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x10
       RAW dump:
       0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x21,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0083
        bmAttributes = 0x0003
        wMaxPacketSize = 0x0040
        bInterval = 0x0006
        bRefresh = 0x0000
        bSynchAddress = 0x0000


-- 
Ali Mashtizadeh
علی مشتی زاده


More information about the freebsd-usb mailing list