USB problems with 8.2

Момчил Иванов momchil at xaxo.eu
Tue Dec 27 14:15:36 UTC 2011


At Tue, 27 Dec 2011 12:59:07 +0100,
Hans Petter Selasky wrote:
> 
> On Tuesday 27 December 2011 12:53:01 Momchil Ivanov wrote:
> > At Tue, 27 Dec 2011 10:36:24 +0100,
> > 
> > Hans Petter Selasky wrote:
> > > Have you tried to use the no-synchronize cache quirk for your drive?
> > 
> > how do I use that?
> > 
> > > Are you using 8-stable?
> > 
> > yes, with sources from about FreeBSD 8.2-STABLE #0: Sat Oct 22 16:07:57
> > CEST 2011.
> 
> Try to update as of today.
> 
> See "usbconfig -h | grep quirk"
> 
> --HPS

I have updated as of today about FreeBSD 8.2-STABLE #1: Tue Dec 27 14:15:28 CET 2011.

here is the relevant output of "lsusb -v" considering the usb drive:

Bus /dev/usb Device /dev/ugen6.2: ID 04fc:0c25 Sunplus Technology Co., Ltd SATALink SPIF225A
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x04fc Sunplus Technology Co., Ltd
  idProduct          0x0c25 SATALink SPIF225A
  bcdDevice            1.03
  iManufacturer           2 Sunplus Technology Inc.
  iProduct                3 USB to Serial-ATA bridge
  iSerial                 1 Hitachi HT080320BB0F00WDHXNL9A
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 Bulk Only Configuration
    bmAttributes         0xc0
      Self Powered
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              5 Bulk Only Interface
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
can't get debug descriptor: Input/output error
Device Status:     0x0001
  Self Powered


I did the following then:

t61# usbconfig -d ugen6.2 dump_device_quirks | grep -i cache
VID=0x058f PID=0x6387 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x1005 PID=0xb113 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x04b4 PID=0x6830 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x04cb PID=0x0100 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x05e3 PID=0x0702 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x152d PID=0x2338 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x04cf PID=0x8818 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x07c4 PID=0x0400 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x067b PID=0x2506 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x14cd PID=0x6600 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x071b PID=0x3203 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x040d PID=0x6204 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x1058 PID=0x0901 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x0492 PID=0x0140 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x058f PID=0x0000 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x090c PID=0x0000 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x0bda PID=0x0000 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x13fd PID=0x0000 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
t61# usbconfig -d ugen6.2 add_quirk UQ_MSC_NO_SYNC_CACHE
t61# usbconfig -d ugen6.2 dump_device_quirks | grep -i cache
VID=0x058f PID=0x6387 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x1005 PID=0xb113 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x04b4 PID=0x6830 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x04cb PID=0x0100 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x05e3 PID=0x0702 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x152d PID=0x2338 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x04cf PID=0x8818 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x07c4 PID=0x0400 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x067b PID=0x2506 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x14cd PID=0x6600 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x071b PID=0x3203 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x040d PID=0x6204 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x1058 PID=0x0901 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x0492 PID=0x0140 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x058f PID=0x0000 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x090c PID=0x0000 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x0bda PID=0x0000 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x13fd PID=0x0000 REVLO=0x0000 REVHI=0xffff QUIRK=UQ_MSC_NO_SYNC_CACHE
VID=0x04fc PID=0x0c25 REVLO=0x0103 REVHI=0x0103 QUIRK=UQ_MSC_NO_SYNC_CACHE


the add_quirk seems to do something since VID=0x04fc appeared at the bottom of the list. But the USB drive stalls again for some seconds after rtorrent hashing about 800MB: the LED on the drive stops blinking, the drive stops making any seek noises, there is no CPU activity and all attempts to "cd" into a directory on the drive get blocked until the device comes back again. As rtorrent continues the hashing after about 4GB of data, the stalls seem to appear more often - every 100-200 MB.

Is there something else I might try?

Note: I was compiling some 100-200 ports last night on the very same drive and that kind of "low speed" load does not seem to make it stall.

Thanks,
Momchil


More information about the freebsd-usb mailing list