[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [linux-usb-devel] Error recovery in Xen's paravirtualizing USB driver for Linux



On Thu, 2005-12-08 at 10:20 -0500, Alan Stern wrote:
> On Wed, 7 Dec 2005, Harry Butterworth wrote:
> 
> > > Suspend/resume is liable to cause trouble.  For instance, what happens to 
> > > the various front-ends if the back-end decides to suspend a USB device?
> > 
> > I don't know.  Could you explain this scenario in more detail (imagine
> > that none of the 800 page USB spec sunk in when I read it :-).  What
> > should happen in this case?
> 
> Suspend and reset are both troublemakers, because they act not on a device 
> but on the device's parent hub.  However resets are pretty self-contained, 
> so provided you recognize them and handle them properly you should be 
> okay.  The back-end won't reset a device all by itself.
> 
> The problems with USB suspend are just a small subset of the problems with 
> suspend in general.  What happens to a front-end if a back-end goes to 
> sleep, for example?

In the current implementation, the virtual hub in the front-end ignores
or fakes up anything to do with power management and doesn't pass it to
the back-end.

I was assuming that the back-end would do it's own power management and
that if it put anything to sleep it would wake it up again for me when
my driver submitted an URB.  This is probably totally naive.

Are the individual USB drivers actually involved in power management or
is it managed by the hub driver transparently to the usb drivers?  If
it's managed transparently then I ought to be able to leave it all to
the back-end, right?

> 
> Your best approach is to make sure that a back-end never tries to suspend
> an exported device.  Then the front-end will be completely responsible for 
> device power management, and no confusion will arise.

I'm not actually giving the front-end access to the back-end hub, only
to a device plugged into the hub.  The front-end gets its own virtual
hub.  So, if I have to have the front-end do the power management then
I'll have to handle the power management requests to the front-end
virtual hub and forward them to the backend and translate them into
requests to the back-end hub.

I'd prefer to let the back-end do it if at all possible.

Thoughts?

> 
> Alan Stern
> 
> 
> 
> -------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
> for problems?  Stop!  Download the new AJAX search engine that makes
> searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
> http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
> _______________________________________________
> linux-usb-devel@xxxxxxxxxxxxxxxxxxxxx
> To unsubscribe, use the last form field at:
> https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.