On 09/01/09 17:31, Garrett D'Amore wrote: > Joerg Schilling wrote: >> Jerry Gilliam <jerry.gilliam at sun.com> wrote: >> >> >>> 2. Project Summary >>> 2.1. Project Description: >>> The tickless project aims at implementing the services >>> provided by the >>> clock cyclic in an event driven fashion. The first >>> sub-project is the >>> decoupling of the lbolt and lbolt64 variables from clock(). >>> These two >>> variables are incremented at each firing of the clock cyclic >>> and provide >>> a time reference to the system. They are being replaced by >>> two routines >>> that are backed by gethrtime(), the existing ddi_get_lbolt() >>> and >>> the new ddi_get_lbolt64(), introduced as a migration path >>> for existing >>> non-DDI compliant consumers. >>> >> >> If this results in being able to sleep with less than 10 ms >> granularity without >> setting a high-res tick, you get many + from me! >> > > Actually, I could really use the ability to use a timer based service > that had a smaller window than 10 msec. For example, many audio > devices have crummy interrupt capabilities... its a lot nicer > (smoother audio) if I have a reliable way to get a periodic running at > smaller intervals. (5 to 10 msec, but with precision -- the current > stuff is simply too coarse.) > > This would simplify a lot of audio device drivers. And make them more > robust as well. :-) > > - Garrett > The callout subsystem has been redesigned to support small and high resolution timers. The condition variable module has also been enhanced to make use of the high resolution timers. (see functions that end with _hires in condvar.c). However, this is not exported via DDI. If some consolidation private driver wants to cheat and use these interfaces (ugh), it can. But if you feel there is a real need, someone should work to export the hires CV interfaces to DDI. What I am saying is that the functionality is there. It just needs to be exported.
Of course, it is outside the scope of what Rafael is doing. Someone else has to bell the cat. Madhavan