Thoughts about bandwidth management

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

 



Sarah:

Improving the bandwidth management in ehci-hcd will require a lot of 
changes, and some difficult issues have come up.  Maybe you can suggest 
a good way to approach them.

The first problem is that when a Set-Interface request fails, the HCD 
needs to revert to the previous schedule settings.  Now even though the 
badnwidth mutex gets held throughout the entire procedure, there's no 
guarantee that the old settings can be restored unless they are saved 
somewhere for reuse.

This suggests that bandwidth allocation changes should be carried in 
multiple steps.  Initially usbcore tells the HCD which endpoints are to 
be disabled and enabled, and then later usbcore tells the HCD either 
to accept the changes or to revert them.

The second problem is that periodic schedule changes can be rather 
invasive, causing service intervals to be missed for endpoints on 
devices other than the one being changed if rebalancing is needed.  For 
this reason I would like to avoid rebalancing whenever possible.  One 
example is when reverting an altsetting change, the other is when a 
Set-Config request fails.  In that case we disable all the device's 
endpoints (other than ep0), which means there's no need to rebalance 
the schedule for all the other devices.

Again, to recognize when this situation occurs, the HCD has to be told
not to accept the previous changes (installing the new config) but to
carry out different changes instead (disabling the entire device).

What do you think?  Does this seem feasible?

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux