>        One of the major consumers of the lbolt service are the cv_timedwait()
>        and cv_timedwait_sig() routines, which require lbolt to form one of its
>        arguments (an absolute value of time) and once again internally to
>        decompose it into a relative time. This project is introducing two new
>        routines, cv_reltimedwait() and cv_reltimedwait_sig() which will 
> perform
>        the same service of the previously mentioned routines but simply
>        receiving a relative time, and not requiring lbolt at all. These new
>        routines will also have a new argument of type time_res_t to inform
>        the underlying timeout system as to how accurately the given timeout
>        must expire. This will allow the kernel to anticipate or defer such
>        timeouts when possible, allowing the system to stay idle for longer
>        periods of time.

In the Solaris kernel at this time, each user visible timeout (poll,
timers) need to wait for at least 2 clock ticks as the kernel doesn't
know when the last tick occurred.

Will this new implementation allow for shorter timeouts and more
precise timeouts?

The minimum time waited should be around one "clock tick" and
not a lot less; some applications expect that the kernel will
wait for exactly one clock tick, even though they ask the kernel
to wait for 1 microsecond.

Casper

Reply via email to