On Thu, 14 Jul 2005 22:06:04 -0400 (EDT), Alan Stern <[EMAIL PROTECTED]> wrote:

> > But calling this cancel adds an opportunity for racing somewhere.
> 
> No it doesn't.  The opportunity was there all along.  Remember, the caller 
> could call usb_sg_cancel from another thread at precisely this time.

I don't think ub does that.

> Trusting unlinks is a separate matter.  However I think they are pretty 
> well under control now.  I can't recall hearing of any problems in the HCD 
> code relating to buggy unlinks for quite some time.

OK, yes, they are much better than used to be. But still, I think that
invoking an unlink doesn't save us anything.

Not having a call to sg_cancel there is one more obstacle to factoring
submission out from usb_sg_wait like you proposed, but that is hindered
by other things as well (e.g. yield()). If those are gone, I'll think
about it again.

BTW, I think I saw an unlink which did not return a callback today.
Not crashing, granted. It happens very infrequently... I saved a trace
accidentially:

d83010e8 697580560 S Bo:005:01 -115 31 = 55534243 1b000000 00080000 80000a28 
00000000 00000001 00000000 000000
d83010e8 697580611 C Bo:005:01 0 31 >
d83010e8 697580641 S Bi:005:02 -115 2048 <
d83010e8 697580862 C Bi:005:02 0 0
d83010e8 697580895 S Bi:005:02 -115 13 <
d83010e8 697580986 C Bi:005:02 -32 0
d83010e8 697581018 S Co:005:00 s 02 01 0000 0082 0000 0
d83010e8 697581112 C Co:005:00 0 0
d83010e8 697581140 S Bi:005:02 -115 13 <
d83010e8 697581236 C Bi:005:02 0 13 = 55534253 1b000000 00080000 01
d83010e8 697581267 S Bi:005:02 -115 13 <
d83010e8 881232539 C Bi:005:02 -71 0            <------ pulled plug
d83010e8 881232612 S Bi:005:02 -115 13 <
d83010e8 881232777 C Bi:005:02 -71 0
d83010e8 881232820 S Bo:005:01 -115 31 = 55534243 1d000000 12000000 80000603 
00000012 00000000 00000000 000000
d83010e8 881232901 C Bo:005:01 -71 0

Look at the jump in the timestamp. It's where I became tired from waiting
and pulled the cable. The unlink itself is not captured by usbmon, because
they are rather reliable normally, and you see a callback with status -104.
I skipped on implementing that. But I guarantee you that ub tries an unlink
from a timer.

-- Pete


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to