On 09/02/09 03:32, Casper.Dik at Sun.COM wrote:
>>        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 new callout implementation (CR 6565503 and others thru 6789031)
fixes these problems.  poll(10 msec) returns in 10 msec.  The minimum
timeout is still one tick, so to get shorter timeouts, you must set
hires_tick.

- Steve

> 
> 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