[U-Boot] usb_test_unit_ready called every block read - performance

Steve Heckman
2012-08-14T13:55:22Z

Marek,

I've been working with Jim on this.

The latest u-boot code we tried (2012.07) does seem to be much faster
WRT reading ext volumes from USB media. We were still able to eke
out a bit more speed by removing the Test Unit Ready calls per Read/Write.
In my experience, you only call Test Unit Ready during initialization of
a device (e.g., SCSI) or after device reset.

We still haven't heard a reason why it is being done for each Read and
Write
operation. Was it put in to work around bad hardware?

Thanks,
Steve Heckman

On Sun, Aug 12, 2012 at 7:54 PM, Marek Vasut <marex@denx.de> wrote:

> Dear Jim Shimer,
>
> > While tuning ext2load, we found that usb_test_unit_ready was being called
> > every block read. We compared the usb block storage to the scsi block
> > storage cmd_scsi.c, and found that the scsi device was only calling its
> > scsi_setup_test_unit_ready() during scsi_can. It appears that
> > usb_test_unit_ready() really only needs to be called once during
> > usb_stor_scan(), via usb_stor_get_info(). Is there a particular reason
> > usb_test_unit_ready is called for every block read, or do you think its
> ok
> > to only call during usb_stor_scan()? We're finding this speeds up
> ext2load
> > quite a bit.
>
> Jim, did we get anywhere on this one ? Can you try with the new ext4 code
> in
> Wolfgangs' u-boot-master/ext4 branch?
>
> > Regards,
> > Jim
>
> Best regards,
> Marek Vasut
>