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

RE: [Xen-devel] bug in usbback



> James Harper wrote:
> > Also, a question on behaviour:
> >
> > When we receive a reconfigure event, I assume that we should then
read
> > 'num-ports' and scan through each of the port-n values in xenstore.
Is
> > there any guarantee that a device hasn't been unplugged and
replugged
> > from the same port during the reconfiguration window? How should I
> > detect such a thing if the value of port-n hasn't changed? Should I
then
> > probe each device? I'm doing this under Windows which is a bit more
> > picky and much less flexible...
> 
> "num-ports" is only read in creating the hcd. This value is unchanged
> during reconfiguring state.
> 
> Reconfiguring is called from usb probe and disconnect callbacks.
> So, reconfiguring is called every time unplugging and plugging are
> detected.
> 
> However, connecting and disconnecting the devices at the same time
> or frequent operations were not tested enough.
> 
> Do you think it's good idea that the method for the notification
> of hotplug is switched from xenbus to RING (like pv network's
rx_ring)?
> 

I like the idea of having the port states in the xenstore. It is a low
speed and (mostly) relatively infrequently changing thing so I think
keeping it in xenstore is appropriate.

I think the problem could be solved by simply including a port change
counter for each port, either as part of the existing port-N value or as
an additional 'port-N-generation' field. The backend would just
increment that every time there is a plug or unplug event, and the
frontend could compare the value to what it was last time to see if the
port had changed.


So maybe "port-N=S" would become "port-N=GGS", where S is the current
'speed' value, and "GG" is a change counter. As an example:

1. port-1=000
2. <hot plug>
3. port-1=013
4. <hot unplug>
5. port-1=020
6. <hot plug>
7. port-1=033

It would unfortunately break backwards compatibility, but it's still in
the staging area, for exactly this reason right?

Thanks

James


_______________________________________________
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®.