On Mon, Dec 09, 2002 at 05:34:11PM -0800, Greg KH wrote: > On Mon, Dec 09, 2002 at 05:32:02PM -0800, David Brownell wrote: > > >>... > > >>Dec 9 15:22:26 soap kernel: usb-storage: > > >>usb_stor_bulk_transfer_sglist(): xfer 65536 bytes, 16 entries > > >>Dec 9 15:22:26 soap kernel: usb-storage: Status code -121; transferred > > >>65037/65536 > > >>Dec 9 15:22:26 soap kernel: usb-storage: -- unknown error > > > > That's not a timeout, "-EREMOTEIO" means it got a short read. > > In this case, that last packet included only 13 bytes not 512. > > (Assuming this was at high speed, otherwise it wasn't the last > > one, and that was likely 13 bytes out of 64.) > > Yeah, that suggests that either usb-storage needs to handle this > somehow, right?
No. That's a bogus thing for a drive to do. It _should_ just NAK when
there is no data until data becomes available.
A short packet indicates the end of the data phase.
> > Given there's only one place in the EHCI driver where EREMOTEIO
> > shows up, I'm tempted to believe that the hardware really did
> > return a short read in that last packet.
> >
> > As for why it did so, no ideas just now. Though I wonder if
> > maybe retrying short reads wouldn't help, on the premise that
> > the disk had a temporary "can't keep up" problem, since using
> > those scatterlist operations drives that hardware much faster
> > than it was ever driven by earlier kernels.
Ack! No! No retrying short reads. We need to be able to see them!
> But does that deserve the long "reset the endpoint" delay that happens
> because of this? I'd rather have a bit slower throughput and no long
> delays, than shorter bursts of data, with long delays, cutting the end
> throughput way down.
Well, the reset logic is slow because some devices need that much time.
You shouldn't be resetting, because you shouldn't be getting short reads.
We need to fix the root cause, not the symptoms.
Matt
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
God, root, what is difference?
-- Pitr
User Friendly, 11/11/1999
msg09911/pgp00000.pgp
Description: PGP signature
