Messages in this thread | | | Subject | Re: nanosleep with small value | Date | Thu, 17 Nov 2005 20:47:28 +0200 | From | Dag Nygren <> |
| |
> On 11/17/05, Dag Nygren <dag@newtech.fi> wrote:
> > Which kernel, what value of HZ?
Sorry, the kernel is 2.6.13 and HZ is 250.
> In either case, it's absurd to assume > that the kernel is going to provide you 1 microsecond resolution in > 2.6 mainline, as the best HZ value is 1000 (1 millisecond). And we > don't busy-wait ever in nanosleep().
Not? The man page for nanosleep saya that times under 2 us are implemented by a busywait and this is why I expected it to work.
> So the fastest your loop can run > is 1000 * 1 ms = 1 second. That's assuming the only time-consuming > thing is sleeping (minimal overhead). But, in sys_nanosleep(), we > convert nanoseconds to jiffies and add 1 if you requested any sleep > time. So, > > HZ = 100 > 1000 * (10 + 1 ms) = 11 s > HZ = 250 > 1000 * (4 + 1 ms) = 5 s > HZ = 1000 > 1000 * (1 + 1 ms) = 2 s (which is what Dick Johnson reported). > > Note, that with HZ=250, there might be some extra rounding occurring > timespec_to_jiffies() that I've forgotten. > > So 8 s may not be terribly unreasonable. I don't know, though, what's > add the 3 seconds if you're using 250.
OK, in that case the manpage should be changed. And an alternative has to be worked out by me ;-).
Thankyou Dag
- 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/
| |