On Mon, Apr 18, 2005 at 11:47:41AM -0400, Alan Stern wrote:
> > I could dd the entire /dev/sda1 to a file and then loopback
> > mount the file to "unload" the .jpg files from the "usb disk".
> > 
> > "dd if=/dev/sda1" stopped working too with 2.6.11.
> > I would get bad block errors at the same location:
> > -rw-r--r--    1 root      root       63275008 Apr 10 22:35 sda1.bad-01
> > -rw-r--r--    1 root      root       63275008 Apr 11 08:12 sda1.bad-02
> 
> I don't think there were any significant changes to the USB subsystem 
> between 2.6.10 and 2.6.11.  At least, not significant enough to cause 
> this.

Sorry - I didn't want to imply I knew 2.6.11 was the first
broken rev. I just happen to be using 2.6.11 now.

...
> > And even with the scheduler [noop] workaround, I can NOT rsync
> > files from the mounted /dev/sda1 to a local file system.
> > Any clues what's going on here?
> 
> It's possible that this is a throughput issue, that the camera can't 
> handle transfers occurring too rapidly.  I can't think of any other 
> reason why changing the elevator algorithm should have an effect.

Well, the HP r707 camera worked fine with 2.4.25.
Are 2.4.x USB storage drivers slower than 2.6.x implementation?
async vs sysnc xfer or something like that perhaps?

> I have submitted a couple of patches to try and improve error recovery in 
> usb-storage.

While I've tried to apply these patches to 2.6.11, I feel like we
are going down the wrong path. Is error recovery a normal part of
block read when talking at device and no one is physically touching
the USB bus?

My experience is primarily with SCSI and PCI bus devices where it
is not.

> You can download them at
> 
> https://lists.one-eyed-alien.net/pipermail/usb-storage/2005-April/001557.html
> https://lists.one-eyed-alien.net/pipermail/usb-storage/2005-April/001558.html
> 
> I think they will apply okay to 2.6.12-rc2.  Maybe they will help; other 
> prople have reported improvements when using them.

The first patch applied to 2.6.11 with fuzz.
The second patch rejected hunk #5:
patching file drivers/usb/storage/transport.c
...
        Hunk #5 FAILED at 1150.

I fixed that up by hand but have to abandon ship because
us_to_host() definition is missing:

drivers/usb/storage/scsiglue.c: In function `usb_stor_report_bus_reset':
drivers/usb/storage/scsiglue.c:327: warning: implicit declaration of function 
`us_to_host'

grundler <505>cd /usr/src/linux-2.6
grundler <506>cd drivers/usb
grundler <507>fgrep us_to_host */*.c
storage/scsiglue.c:     scsi_report_bus_reset(us_to_host(us), 0);
storage/transport.c:    scsi_lock(us_to_host(us));
storage/transport.c:    scsi_unlock(us_to_host(us));
storage/transport.c:            scsi_lock(us_to_host(us));
storage/transport.c:            scsi_unlock(us_to_host(us));

I'll pull a 2.6.12-rcX kernel and see if it works better
and then apply the patches there if they aren't already included.

thanks,
grant


-------------------------------------------------------
This SF.Net email is sponsored by: New Crystal Reports XI.
Version 11 adds new functionality designed to reduce time involved in
creating, integrating, and deploying reporting solutions. Free runtime info,
new features, or free trial, at: http://www.businessobjects.com/devxi/728
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to