Skip to contentSkip to conversation

2.6.0-test1: random errors for USB disk

linux-usb-devel Alan Stern 3 participants 3 messages Jul 17, 2003 1 message not in the archive SCSI

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Alan Stern

author
#1 lore raw
Quoted 9 lines · Harald Dunkel
Quoted 8 lines · Harald Dunkel
Quoted 6 lines · Alan Stern

Did you say that this worked correctly under 2.4.22? If it does, could you send the equivalent system log (with usb-storage debugging enabled) showing what happens when you create a filesystem and everything works right?

Quoted 5 lines
Quoted 3 lines

The rebuild is running. But the last working version I have is 2.4.21 plus the USB patches of June 20th. Is it OK to start with this version?

See attachment.

The information in your system logs is very clear. Your USB drive worked just great until it received a big data transfer.

Under 2.4, the largest WRITE transfer was 130048 bytes and it worked fine. Under 2.6, the largest attempted WRITE transfer was 524288 bytes and it crashed the drive. The two commands were otherwise identical.

Presumably differences in the block I/O systems account for the difference in buffer sizes. But I don't know of any way to tell Linux that the drive is unable to accept data transfers larger than some fixed limit.

Can anyone else suggest a way to solve this?

Alan Stern

#2 lore raw
Quoted 4 lines · Alan Stern

The information in your system logs is very clear. Your USB drive worked just great until it received a big data transfer.

Under 2.4, the largest WRITE transfer was 130048 bytes and it worked fine. Under 2.6, the largest attempted WRITE transfer was 524288 bytes and it crashed the drive. The two commands were otherwise identical.

Just to clarify: there's another difference, and that's that 2.4 does doing that smaller write one page at a time (write, wait, write, wait,...) while 2.6 does it all at once (write, write, write, write, ... wait).

That difference is how I've seen usb-storage top 30 MByte/sec on USB with 2.6 kernels, when 2.4 may not reach 10 MB/sec on the same hardware.

- Dave

Quoted 9 lines

Presumably differences in the block I/O systems account for the difference in buffer sizes. But I don't know of any way to tell Linux that the drive is unable to accept data transfers larger than some fixed limit.

Can anyone else suggest a way to solve this?

Alan Stern

#3 lore raw
Quoted 8 lines · David Brownell
Quoted 4 lines · Alan Stern

The information in your system logs is very clear. Your USB drive worked just great until it received a big data transfer.

Under 2.4, the largest WRITE transfer was 130048 bytes and it worked fine. Under 2.6, the largest attempted WRITE transfer was 524288 bytes and it crashed the drive. The two commands were otherwise identical.

Quoted 7 lines

Just to clarify: there's another difference, and that's that 2.4 does doing that smaller write one page at a time (write, wait, write, wait,...) while 2.6 does it all at once (write, write, write, write, ... wait).

That difference is how I've seen usb-storage top 30 MByte/sec on USB with 2.6 kernels, when 2.4 may not reach 10 MB/sec on the same hardware.

I am using the disk in question to do backups of my $HOME. On 2.4.21 it was written with an amazing speed of about 20 MByte/sec, which I had never expected. I could live with 10, if it is reliable.

Regards

Harri