lkml.org 
[lkml]   [2008]   [Jun]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: When did High-Resolution Timers hit mainline?
Hi Bart,

Just following up a little further here.

On Wed, Jun 25, 2008 at 8:32 AM, Bart Van Assche
<bart.vanassche@gmail.com> wrote:
> On Wed, Jun 25, 2008 at 6:08 AM, Michael Kerrisk
> <mtk.manpages@googlemail.com> wrote:
>> The Software Clock, HZ, and Jiffies
>> The accuracy of various system calls that set timeouts, (e.g.,
>> select(2), sigtimedwait(2)) and measure CPU time (e.g.,
>> getrusage(2)) is limited by the resolution of the software
>> clock, a clock maintained by the kernel which measures time in
>> jiffies. The size of a jiffy is determined by the value of the
>> kernel constant HZ.
>
> Maybe "size of a jiffy" should be replaced by "duration of a jiffy" ?
>
> An explanation of the impact of CONFIG_NO_HZ is missing.
>
> You also missed the fact that since the 2.6 kernel there are two
> constants related to time resolution, namely HZ and USER_HZ. HZ is the
> frequency of the timer interrupt, and 1/USER_HZ is the time resolution
> for system calls that use jiffies as time unit (e.g. the five values
> returned by the times() system call).

As far as I can tell, times() is the only system call that employs
USER_HZ. Let me know if you think I'm wrong. The only othe place
where USER_HZ seems to come into play is the time fields displayed in
/proc/PID/stat and /poc/stat. (My point of verification here is
looking at usages of cputime_to_clock_t() and cputime64_to_clock_t()
in the kernel source.)

> The time resolution of e.g. the
> select() and poll() system calls is 1.0/HZ since the timeout for these
> system calls is specified as a struct timeval or struct timespec.

Yes. So I think what I'll do is just add some text noting that the
times() syscall is a special case.

Cheers,

Michael

--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
man-pages online: http://www.kernel.org/doc/man-pages/online_pages.html
Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html


\
 
 \ /
  Last update: 2008-06-25 15:37    [W:0.114 / U:0.192 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site