Messages in this thread | | | Date | Sat, 21 Sep 2002 13:23:10 +0200 (CEST) | From | Jos Hulzink <> | Subject | udelay and nanosleep questions |
| |
Hi,
Talking about kernel driver programming:
1) Can I rely on udelay(1) ? i.e. is the resolution high enough to wait at least 1 microsecond given it returns normally ? I know the actual implementation is platform / cpu dependant, so maybe I should ask: Should I be able to rely on udelay(1) ?
2) With the highspeed CPUs these days, the implementation of sys_nanosleep (in kernel/timer.c) for realtime processes:
sys_nanosleep {udelay ((nsec+999)/1000}
is rather low-res. Time for something new ? sys_nanosleep seems not the call to make for in-kernel accurate delays, for it schedules a timeout instead of doing a busy wait. My driver needs 250 ns delays, is there a more accurate way than udelay(1) ? It is a pity to waste 4x more clockcycli than needed.
3) Usleep and friends seem not to care about speedstepping technologies. Shouldn't we care, at least for in-kernel and realtime process waits ? True, you are an idiot when running realtime processes on a speedstep enabled CPU, but still...
Jos
- 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/
| |