I am using high-res timers
(http://sourceforge.net/projects/high-res-timers) in a driver to do
sub-millisecond timing for a driver I am developing. With high-res
timers, I have some code that looks like:
#ifdef CONFIG_HIGH_RES_TIMERS
/* If the state machine asks for a short delay, then shorten
the timer timeout. */
if (kcs_result == KCS_CALL_WITH_DELAY) {
kcs_timer.sub_expires
+= usec_to_arch_cycles(KCS_SHORT_TIMEOUT_USEC);
while (kcs_timer.sub_expires >= cycles_per_jiffies) {
kcs_timer.expires++;
kcs_timer.sub_expires -= cycles_per_jiffies;
}
} else {
kcs_timer.expires += KCS_TIMEOUT_JIFFIES;
}
#else
kcs_timer.expires += KCS_TIMEOUT_JIFFIES;
#endif
But the high-res timers are not in the kernel right now, it's a patch
you have to add, and the user has to have it configured.
-Corey
Ben Greear wrote:
> I am re-working the net/core/pktgen code to be a kernel thread.
>
> It is basically working, but I am having trouble making the thread
> efficiently sleep for durations in the milisecond and micro-second range.
>
> I have looked at the udelay and mdelay methods, but they busy
> wait.
>
> I do not need absolute real-time precision, so if I ask the thread
> to sleep for 100 micro-seconds, it is not a big deal if it does
> not wake up for 5000us. On average, it should be very close to 100us.
>
> I believe the answer may be to use some sort of timer and have my
> thread sleep on this timer, but I cannot find any examples or
> documentation on how to do this on the web.
>
> If anyone can point me to some example code or documentation, I
> would appreciate it.
>
> Thanks,
> Ben
>
-
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 : Tue Jul 23 2002 - 22:00:26 EST