Dear Steve Heckman, > Oh yeah, forgot about that...;) > > I just downloaded the ext4 branch tarball and built it. > > The test_unit_ready calls were still in there. > > With or without those it took 0m 45s to load a ~150MB image. > > In our original branch (2011.12), the test_unit_ready calls had more of an > impact. The stock 2011.12 u-boot image took 6m 22s to load the 150MB file. > Without test_unit_ready, it took 3m 15s. Without test_unit_ready and > wait_ms(5) in usb_stor_BBB_transport() it took 0m 16s. > > In the ext4 branch, I removed test_unit_ready and the mdelay(5) call > from usb_stor_BBB_transport() function and was able to load the same file > in 0m 8s. > > So, removing the mdelay(5) call is the biggest improvement. Removing both > is the best. > > To recap: > > with w/o w/o > TUR TUR TUR and 5ms wait > 2011.12 6:25 3:15 0:16 > ext4 0:45 0:45 0:08 > > Note: all these time include the 3-4 seconds it takes to do the "usb > start".
Coolness ! :-) Please just retest by applying those ext4 patches on top of uboot usb and see how fast it goes :) > Regards, > -Steve > > On Wed, Aug 15, 2012 at 10:19 AM, Jim Shimer <mgi2...@motorola.com> wrote: > > Hi Marek, > > > > I looked at the ext4 branch. It looks like he has the patch to remove > > the usb_test_unit_ready() calls which were not needed. Actually those > > calls are commented out on that branch: > > #if 0 > > > > if (usb_test_unit_ready(srb, ss)) { > > > > printf("Device NOT ready\n Request Sense returned %02X > > > > %02X" > > > > " %02X\n", srb->sense_buf[2], srb->sense_buf[12], > > > > srb->sense_buf[13]); > > > > return 0; > > > > } > > > > #endif > > > > In the u-boot-usb.git, this code is removed so at some point there will > > be a merge conflict. > > > > Also the ext4 branch still has the mdelay(5) always being done in > > usb_stor_BBB_transport() line 696 which we found to be the largest > > performance killer. > > > > Regards, > > Jim > > > > On Sun, Aug 12, 2012 at 7:54 PM, Marek Vasut <ma...@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 > > > > -- > > *James H Shimer* > > Motorola Mobility T3-12-HH72 > > 900 Chelmsford Street > > Lowell MA 08151 > > 978-614-3550 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot