Bug 130326

Summary: usb-storage fails under load with external USB HDD
Product: [Fedora] Fedora Reporter: Luke Hutchison <luke.hutch>
Component: kernelAssignee: Pete Zaitcev <zaitcev>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: medium    
Version: 2CC: bugzilla, byte, davej, greymane, jclcheng, rbremer, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-04-16 04:47:57 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
The relevant part of /var/log/messages none

Description Luke Hutchison 2004-08-19 04:24:44 UTC
Distribution: FC2, upgraded to kernel 2.6.7-1.499
Hardware Environment: Pentium-M Vaio laptop
Software Environment: bash
Problem Description:

I recently purchased an external hard drive enclosure ("Mobile Disk"
is the brand I think), to use with a Seagate Barracuda drive that I
have used without problems internally for over a year.  The device is
connected via USB, through a Dynex USB2 hub.

It works fine under light load, but while copying many files (or one
large file), the following happens:

--

# mv DGC_Movies /mnt/external/ -v
`DGC_Movies' -> `/mnt/external/DGC_Movies'
`DGC_Movies/audio_ts' -> `/mnt/external/DGC_Movies/audio_ts'
`DGC_Movies/video_ts' -> `/mnt/external/DGC_Movies/video_ts'
`DGC_Movies/video_ts/vts_01_2.vob' ->
`/mnt/external/DGC_Movies/video_ts/vts_01_2.vob'
`DGC_Movies/video_ts/vts_01_1.vob' ->
`/mnt/external/DGC_Movies/video_ts/vts_01_1.vob'
mv: writing `/mnt/external/DGC_Movies/video_ts/vts_01_1.vob':
Read-only file system
`DGC_Movies/video_ts/vts_01_0.vob' ->
`/mnt/external/DGC_Movies/video_ts/vts_01_0.vob'
mv: cannot create regular file
`/mnt/external/DGC_Movies/video_ts/vts_01_0.vob': Read-only file system
`DGC_Movies/video_ts/vts_01_0.ifo' ->
`/mnt/external/DGC_Movies/video_ts/vts_01_0.ifo'
mv: cannot create regular file
`/mnt/external/DGC_Movies/video_ts/vts_01_0.ifo': Read-only file system
`DGC_Movies/video_ts/vts_01_0.bup' ->
`/mnt/external/DGC_Movies/video_ts/vts_01_0.bup'

[etc.]

# ls /mnt/external/
ls: reading directory /mnt/external/: Input/output error
[root@trilobite vfat]# umount /mnt/external
umount: /mnt/external: device is busy
umount: /mnt/external: device is busy

--

[The "device is busy" message could have been due to Nautilus having a
window open, rather than some other problem.]  It appears that the
drive gets remounted as read-only, or something.

Interestingly, the next time I mount the drive, with or without a
power cycle of both the drive and the laptop, the scsi drive number
gets bumped up by one, e.g. sda5 -> sdb5 -> sdc5 -> sdd5 etc.

Output from dmesg:

--

scsi2 (0:0): rejecting I/O to dead device
printk: 102938 messages suppressed.
Buffer I/O error on device sdc5, logical block 1
lost page write due to I/O error on sdc5
scsi2 (0:0): rejecting I/O to dead device
Buffer I/O error on device sdc5, logical block 1409024
lost page write due to I/O error on sdc5
Buffer I/O error on device sdc5, logical block 1409025
lost page write due to I/O error on sdc5
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device

[...etc... many times...]

scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
scsi2 (0:0): rejecting I/O to dead device
printk: 190 messages suppressed.
Buffer I/O error on device sdc5, logical block 529
lost page write due to I/O error on sdc5

--

The output of /proc/bus/usb/devices:

--

# cat /proc/bus/usb/devices
 
T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.06
S:  Manufacturer=Linux 2.6.7-1.499custom uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:1d.2
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms
 
T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=16 #Cfgs=  1
P:  Vendor=054c ProdID=014d Rev= 1.10
S:  Manufacturer=Sony
S:  Product=USB Memory Stick Slot
S:  SerialNumber=0052450758049792
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=05 Prot=50 Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 
T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.06
S:  Manufacturer=Linux 2.6.7-1.499custom uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:1d.1
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms
 
T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=054c ProdID=0107 Rev= 0.00
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=82(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 0 Alt= 1 #EPs= 2 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=01(Isoc) MxPS=   8 Ivl=1ms
E:  Ad=82(I) Atr=01(Isoc) MxPS= 256 Ivl=1ms
I:  If#= 0 Alt= 2 #EPs= 2 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=01(Isoc) MxPS=   8 Ivl=1ms
E:  Ad=82(I) Atr=01(Isoc) MxPS= 384 Ivl=1ms
I:  If#= 0 Alt= 3 #EPs= 2 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=01(Isoc) MxPS=   8 Ivl=1ms
E:  Ad=82(I) Atr=01(Isoc) MxPS= 512 Ivl=1ms
I:  If#= 0 Alt= 4 #EPs= 2 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=01(Isoc) MxPS=   8 Ivl=1ms
E:  Ad=82(I) Atr=01(Isoc) MxPS= 640 Ivl=1ms
I:  If#= 0 Alt= 5 #EPs= 2 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=01(Isoc) MxPS=   8 Ivl=1ms
E:  Ad=82(I) Atr=01(Isoc) MxPS= 768 Ivl=1ms
I:  If#= 0 Alt= 6 #EPs= 2 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=01(Isoc) MxPS=   8 Ivl=1ms
E:  Ad=82(I) Atr=01(Isoc) MxPS= 896 Ivl=1ms
I:  If#= 0 Alt= 7 #EPs= 2 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=01(Isoc) MxPS=   8 Ivl=1ms
E:  Ad=82(I) Atr=01(Isoc) MxPS=1023 Ivl=1ms
 
T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc=320/900 us (36%), #Int=  5, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.06
S:  Manufacturer=Linux 2.6.7-1.499custom uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:1d.0
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms
 
T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  9 Spd=12  MxCh= 7
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0409 ProdID=0050 Rev= 1.00
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms
 
T:  Bus=02 Lev=02 Prnt=09 Port=01 Cnt=01 Dev#= 10 Spd=12  MxCh= 0
D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=03f0 ProdID=0604 Rev= 1.00
S:  Manufacturer=Hewlett-Packard
S:  Product=DeskJet 840C
S:  SerialNumber=CN13H1R2DJLB
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  2mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=01 Driver=usblp
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:  If#= 0 Alt= 1 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 
T:  Bus=02 Lev=02 Prnt=09 Port=03 Cnt=02 Dev#= 11 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=03f0 ProdID=0217 Rev= 1.00
S:  Manufacturer=HewLett Packard
S:  Product=HP LaserJet 2200
S:  SerialNumber=00USBGK05603
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  2mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=07(print) Sub=01 Prot=03 Driver=usblp
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
I:  If#= 0 Alt= 1 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:  If#= 0 Alt= 2 #EPs= 1 Cls=07(print) Sub=01 Prot=01 Driver=usblp
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 
T:  Bus=02 Lev=02 Prnt=09 Port=05 Cnt=03 Dev#= 12 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=067b ProdID=3507 Rev= 1.00
S:  Manufacturer=Prolific Technology Inc.
S:  Product=Mass Storage Device
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 
T:  Bus=02 Lev=02 Prnt=09 Port=06 Cnt=04 Dev#= 13 Spd=12  MxCh= 4
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0451 ProdID=1446 Rev= 1.10
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms
 
T:  Bus=02 Lev=03 Prnt=13 Port=00 Cnt=01 Dev#= 14 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=045e ProdID=001d Rev= 1.14
S:  Product=Microsoft Natural Keyboard Pro
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=82(I) Atr=03(Int.) MxPS=   3 Ivl=10ms
 
T:  Bus=02 Lev=03 Prnt=13 Port=01 Cnt=02 Dev#= 15 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=045e ProdID=001e Rev= 1.14
S:  Manufacturer=Microsoft
S:  Product=Microsoft IntelliMouse� Explorer
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=usbhid
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=10ms
 
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 6
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.06
S:  Manufacturer=Linux 2.6.7-1.499custom ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=0000:00:1d.7
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=256ms
 
T:  Bus=01 Lev=01 Prnt=01 Port=04 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=054c ProdID=014d Rev= 1.10
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=05 Prot=50 Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

--


Steps to reproduce:
Put the drive under load


I will attach the relevant parts of /var/log/messages below.

Comment 1 Luke Hutchison 2004-08-19 04:27:15 UTC
Created attachment 102865 [details]
The relevant part of /var/log/messages

There is some junk in the log due to the fact that hald was not running, and
/dev/sda is a memorystick slot, which did not have media in it.

Comment 2 Luke Hutchison 2004-08-19 04:48:19 UTC
Actually the data was not corrupted, it seems that the files that it
said had copied OK never ended up on the disk.  (May be an ext3
journalling side effect, it looks like the disk was automatically
checked next time it was mounted.)


Comment 3 Pete Zaitcev 2004-08-19 06:47:21 UTC
--- linux-2.6.8-rc4-mm1/drivers/usb/storage/usb.c	2004-08-16
12:13:06.000000000 -0700
+++ linux-2.6.8-rc4-mm1-ub/drivers/usb/storage/usb.c	2004-08-18
23:48:09.335107648 -0700
@@ -285,7 +285,7 @@ static int usb_stor_control_thread(void 
 	 */
 	daemonize("usb-storage");
 
-	current->flags |= PF_NOFREEZE;
+	current->flags |= PF_NOFREEZE|PF_MEMALLOC;
 
 	unlock_kernel();
 

Looks clear like day to me, but maybe I'm missing something.


Comment 4 Pete Zaitcev 2004-08-20 00:28:44 UTC
OK, we're having a controversy among VM gurus. In theory (according
to Hugh, anyway), usb-storage thread uses GFP_NOIO for its allocations
on 2.6 and it ought to be sufficient without PF_MEMALLOC trick as
in 2.4.


Comment 5 Luke Hutchison 2004-08-20 01:30:27 UTC
Was my assessment of the problem correct -- that this is indeed a
problem with usb-storage?  Could it be happening at a lower level than
usb-storage, e.g. in the USB subsystem?

How does the drive number/letter keep increasing when this happens? 
Why does the drive letter change survive a power cycle of both the
computer and the drive?


Comment 6 Alexandr Yermakov 2004-10-01 06:42:27 UTC
There is such problem with ehci_hcd module, i.e. USB 2.0, but with
uhci_hcd (USB 1.1) is OK at all.

Comment 7 Alexandr Yermakov 2004-10-01 11:54:14 UTC
There is such problem with ehci_hcd module, i.e. USB 2.0, but with
uhci_hcd (USB 1.1) is OK at all.

Comment 8 Luke Hutchison 2004-10-01 15:27:08 UTC
Alexandr: you mean you've seen this problem yourself?

I have an interesting situation in that my setup:

Machine: USB-1.1 only (I have AMD760 + Via 82C686B)
Hub:     USB-2.0
Drive:   USB-2.0

So I'm guessing that the Machine<->Hub link was falling back to USB-1.1.

Comment 9 Jeff Stevenson 2004-10-27 04:44:44 UTC
I have one of these "mobile disk" enclosures as well and am suffering 
problems as well.  The chipset in this enclosure is from Prolific 
Technologies Inc PL-3507.  Searching around on the web has found 
others with similar (although some only intermittant) problems.

Turning on verbose USB debugging shows the problem is in usb-
storage.  Any time a substantial block of data is moved to the drive 
("substantial" seems to vary considerably though) usb-storage hangs 
until it eventually comes back with a status code (it varies but I 
know I've seen statu code-71 and -104) then returns "unknown error" 
and resets itself and tries to repeat the transfer.

Similar problems are being reported by those using the firewire port 
although I haven't tried that myself yet.  If you would like to see 
an example of the errors there is a posting at 
http://www.uwsg.iu.edu/hypermail/linux/kernel/0402.2/1203.html with 
specifics.

Comment 10 Dave Jones 2004-12-07 06:05:08 UTC
this fixed in the 2.6.9 errata kernel ?

Comment 11 Pete Zaitcev 2004-12-07 06:26:19 UTC
Well, if you applied Riel's I/O throttling patch, then it may be fixed.
Otherwise, nope...

The litmus test is:
 grep throttle_vm_writeout mm/page-writeback.c

Give me exact release of this "2.6.9 errata" and I'll do prep and grep.

Comment 13 Alex Butcher 2004-12-08 17:38:50 UTC
I think I've observed this too, connecting to an Intel USB port (I'll
check which ?hci driver later). Same PL-3507 USB/1394->ATA bridge chipset.

Firmware updates *may* help (do so at your own risk, though -
<http://member.newsguy.com/~siccos/PL3507%20Firmware.htm>). I can't
flash my firmware as the flash memories in my caddies are dual-voltage
and cannot be reprogrammed in-circuit.

Comment 14 Luke Hutchison 2004-12-09 06:28:09 UTC
Alex -- thanks for the info.  I don't know if I will risk flashing the
drive.  (For now I'm just not using it.)

I'm sure in the long run it would be better to find a workaround.

Pete Z, how does the I/O throttling patch work?  Is Riel's patch
designed to fix a generic kernel problem, or is this specific to the
problem experienced by the PL-3507 chipset?  Your comment #11 seems to
suggest it is generic, but Alex's comment #13 seems to indicate this
is a common problem with a specific chipset.

Comment 15 Alex Butcher 2004-12-09 08:54:57 UTC
As an aside, after reading about the problems with >128KB transfers
over the 1394 interface of the PL-3507, and >64 (or >128) sector
transfers with the Genesys bridges (see
/drivers/usb/storage/scsiglue.c), I thought I would experiment to see
if tweaking max_sectors via sysfs would help with the PL-3507 also. I
tweaked it from the default of 256 (for non-Genesys devices) down to
64, did a badblocks read test, then 128 and badblocks again, then 256
and badblocks again. I was expecting 128 and/or 64 to complete
successfully and 256 to fail. Instead, all tests worked.

Was my testing methodology legitimate?

Comment 16 Alex Butcher 2004-12-09 08:56:34 UTC
Oh, I'm using the latest FC3 kernel (2.6.9-1.681), BTW, so this isn't
fixed there. :-/

Comment 17 Alex Butcher 2004-12-10 08:42:00 UTC
To the USB storage gurus: is there any way that the order of loading
the ?hci_hcd modules could make any difference to behaviour?

I say this, because since switching to loading ehci_hcd last instead
of first, my problems seem to have gone away. Of course, this could
just be coincidence. :-/

From /etc/modprobe.conf:
#alias usb-controller ehci-hcd
#alias usb-controller1 ohci-hcd
#alias usb-controller2 uhci-hcd
alias usb-controller ohci-hcd
alias usb-controller1 uhci-hcd
alias usb-controller2 ehci-hcd

To Luke: give this a try and see if it makes any difference for you...


Comment 18 Jeff Cheng 2004-12-22 18:13:02 UTC
Alex: I tried loading ehci_hcd last, but the problem still exists for
me.  I'm also using kernel-2.6.9-1.681_FC3.

Comment 19 Dave Jones 2005-04-16 04:47:57 UTC
Fedora Core 2 has now reached end of life, and no further updates will be
provided by Red Hat.  The Fedora legacy project will be producing further kernel
updates for security problems only.

If this bug has not been fixed in the latest Fedora Core 2 update kernel, please
try to reproduce it under Fedora Core 3, and reopen if necessary, changing the
product version accordingly.

Thank you.


Comment 20 Luke Hutchison 2005-04-16 06:16:29 UTC
Does anyone else on the list have a rig they can test this on, with either FC3
or FC4-development?  My drive enclosure doesn't currently have a drive in it.  I
suspect the problem is not yet fixed, since this is not an FC2-specific problem.

Comment 21 Pete Zaitcev 2005-04-16 06:41:03 UTC
I am reasonably confident that original problem with the write not throttled
is alleviated in FC4, if not fixed completely. However, people suffering from
entirely different causes attached to the bug.

Just file new bugs if you hit problems. It's 100 times easier to dup bugs
than to split them.


Comment 22 Luke Hutchison 2005-10-24 21:54:16 UTC
The bug's already closed, but I just wanted to add this comment: I have been
using the same drive enclosure with recent 2.6.13 kernels in FC5-development,
and can report that I haven't seen this problem this time around, so it does
appear fixed.  Thanks again.