Alan, I've applied your patch, and I'm running various tests against the drive right now, including some brutal iozone benchmarks. It hasn't broken yet, which is promising.
Funnily enough however, with your patch, the cpu overhead seems to be higher than with just inserting the 250 us udelay before handling the USB command (which I confirmed also worked after switching off all the debugging). This is looking at the percentages of system (lower with the udelay) and wait-for-io time (higher with the udelay), and the CPU that the usb-storage thread consumes (much higher with your patch). However, this might just be a byproduct of how the CPU time is recorded and accounted for? Anyway, lastly, thruput is roughly the same with your patch and when using the udelay. Jacques Alan Stern <[EMAIL PROTECTED]> wrote: > Thanks for letting me know; that's very interesting and encouraging. > > So if you turn usb-storage debugging off and go back to the original > source but just insert that single delay before calling the protocol > handler, does it work okay? > > Does the patch below work also? It should do about the same thing as > your 250 microsecond delay, but with less CPU overhead. > > If making this simple change will get all those broken Genesys Logic > interfaces to work, it would be great! > > Alan Stern > > > ===== drivers/usb/storage/usb.c 1.119 vs edited ===== > --- 1.119/drivers/usb/storage/usb.c Sun Jun 13 16:09:07 2004 > +++ edited/drivers/usb/storage/usb.c Fri Jun 18 11:48:08 2004 > @@ -358,6 +358,18 @@ > > /* we've got a command, let's do it! */ > else { > + int frame1, frame2, count; > + > + frame1 = usb_get_current_frame_number(us->pusb_dev); > + count = 0; > + do { > + yield(); > + frame2 = usb_get_current_frame_number(us->pusb_dev); > + if (frame1 != frame2) { > + frame1 = frame2; > + ++count; > + } > + } while (count < 2); > US_DEBUG(usb_stor_show_command(us->srb)); > us->proto_handler(us->srb, us); > } > ------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel