[BTW, Alan, I get the impression we did some amount of talking past each other. Some of that might be terminology.]
The scheduler, as I modified it, is actually two pieces; the budgeter (which reserves bandwidth and makes timing decisions) and the scheduler (which inspects the budget and manipulates the hardware schedule). The scheduler is mostly unchanged from before, it just no longer tries to do its own on-the-fly decision making. The scheduling structure and conventions are mostly the same; the hardware schedule is not really a round-robin, it only holds a few transactions at a time, which are yanked as soon as they complete. The budget, however, is a true round-robin. The old scheduler actually tore down an endpoint completely upon underrun (if it managed to detect it, which due to bugs, it usually didn't). If a new URB came in, it would restart the endpoint from scratch, re-performing schedule and bandwidth allocation. It had no idea how many things got missed, because an underrun was the practical equivalent of calling close(). In the new scheduler, the budget is unaffected. When an underrun occurs, the hardware scheduler merely skips over the schedule slots that got missed, but does not drop the 'late' transactions when they're submitted. Perhaps you are arguing that this is broken? I'd have to agree; however, I am keeping with how the scheduler worked before (if that had actually worked properly, which for the most part it didn't). Returning an error on late transactions, such that the transactions are dropped until the driver/app catches up, would be a _change_ to the way things have always been since ISO support was added. If you think we should bite the bullet and make that change, it would not be particularly difficult from the schedule standpoint... at least for ISO OUT. IN is a different problem; if we missed schedule slots, the device probably overran, so we don't know how much data actually got lost. We still end up with a latency shift even if we drop the exact number of transactions that got missed. Monty ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel