Re: nanosleep

From: H. Peter Anvin (hpa@zytor.com)
Date: Wed Apr 10 2002 - 00:47:42 EST


Followup to: <20020410044243.2916.qmail@fastermail.com>
By author: "mark manning" <mark.manning@fastermail.com>
In newsgroup: linux.dev.kernel
>
> thanx - how much of a difference should i expect - i know the
> syscall is asking for at least the required ammount but that the
> task switcher might not give me control back for a while after the
> requested delay but i was expecting to be a little closer to what i
> had asked for - this isnt critical of corse but i would like to know
> what to expect.
>

Read the man page:

BUGS
       The current implementation of nanosleep is based on the
       normal kernel timer mechanism, which has a resolution of
       1/HZ s (i.e, 10 ms on Linux/i386 and 1 ms on Linux/Alpha).
       Therefore, nanosleep pauses always for at least the speci­
       fied time, however it can take up to 10 ms longer than
       specified until the process becomes runnable again. For
       the same reason, the value returned in case of a delivered
       signal in *rem is usually rounded to the next larger mul­
       tiple of 1/HZ s.

       As some applications require much more precise pauses
       (e.g., in order to control some time-critical hardware),
       nanosleep is also capable of short high-precision pauses.
       If the process is scheduled under a real-time policy like
       SCHED_FIFO or SCHED_RR, then pauses of up to 2 ms will be
       performed as busy waits with microsecond precision.

        -hpa

-- 
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt	<amsp@zytor.com>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Apr 15 2002 - 22:00:14 EST