On Monday 26 December 2005 2:35 pm, Alan Stern wrote: s. > > CONFIG_USB_BANDWIDTH isn't _really_ needed.
I think it was there historically because the first implementations didn't work correctly. In fact, the model underlying that current usb_check_bandwidth() call is incorrect ... reservations for periodic bandwidth (isochronous and interrupt transfers) are per-endpoint, not per-urb. > What it does (or rather, what > it would do if it worked properly) is prevent the kernel from > overcommitting on USB bandwidth. It's also completly ignored for - ohci-hcd, which never overcommits; - sl811-hcd, works just like ohci in that respect; - isp116x-hcd, ditto; - ehci-hcd, can't risk overcommit with transaction translators(*); The only HCDs that use usb_check_bandwidth() are the CRIS HCD (which, last I heard, neither built nor, after fixing build errors, worked) and UHCI. Which is why this patch is incorrect ... The long term solution is to get rid of that CONFIG_ symbol and the code backing it, and then have all the HCD properly reserve periodic bandwidth, using a per-endpoint approach. - Dave (*) The issues folk have mentioned with bandwidth reservation for EHCI are more "full and low speed devcies can't use all the available transaction translator bandwidth" than anything else. As a rule high speed devices don't see such issues ... only the needing more complex scheduling models than usb_check_bandwidth supports, just to work -- in even simple scenarios. Which is why EHCI never has/will use the code now protected by USB_BANDWIDTH. ------------------------------------------------------- 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@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel