On Tue, 18 May 2004, David Brownell wrote:

> Alan Stern wrote:
> > 
> > I'm all in favor of something like this.  Do you have any ideas on how we 
> > should handle the case where the hub itself was disconnected but we don't 
> > yet know that it's gone?  We wouldn't want to log a KERN_ALERT message 
> > when that happens.
> 
> The only potential problem is where states are represented as
> call stack context in khubd ... so long as there's only one
> khubd thread noticing disconnects, there's no way it'd notice
> and then communicate (to itself) that disconnect.  Right?

I don't understand your point here.  Imagine this: hub A reports a new
connection on one of its ports.  Khubd sees this and goes through
debouncing etc.  While this is happening hub A is unplugged.  Since
debouncing failed, khubd wants to disable the port.  But it can't, since
hub A won't reply to the CLEAR_FEATURE messages.  Since khubd has been
preoccupied with all this debouncing stuff it doesn't yet know that hub A
has been unplugged.  Even if it's multithreaded it still might not learn
for a large fraction of a second, not until hub A's parent's status 
interrupt message arrives.  In the meantime, how do we know to avoid 
logging a premature KERN_ALERT message?

> Other than multithreading khubd, or switching it to a pure state
> machine model, the first thing that comes to mind is that the
> status change interrupt says which ports changed status, and
> they all seem to imply "disconnect" for any device connected
> on that port.  (Except for remote wakeup signaling, which would
> preclude talking to a downstream hub.)  So that completion handler
> could mark everything NOTATTACHED right away, so retries lasting
> more than 1/4 sec could notice that's the case ... and avoid the
> nasty log messages).

They don't all imply disconnect.  C_PORT_RESET and C_PORT_SUSPEND don't, 
for example.  So that idea doesn't work.

Alan Stern



-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to