From: Corey Minyard <minyard@acm.org>
To: Ben Greear <greearb@candelatech.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: How to make a kernel thread sleep for a short amount of time?
Date: Thu, 18 Jul 2002 09:39:13 -0500 [thread overview]
Message-ID: <3D36D311.2030402@acm.org> (raw)
In-Reply-To: 3D24BC95.3030006@candelatech.com
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
>
prev parent reply other threads:[~2002-07-18 14:36 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-04 21:22 How to make a kernel thread sleep for a short amount of time? Ben Greear
2002-07-04 21:36 ` bert hubert
2002-07-18 14:39 ` Corey Minyard [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3D36D311.2030402@acm.org \
--to=minyard@acm.org \
--cc=greearb@candelatech.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.