All of lore.kernel.org
 help / color / mirror / Atom feed
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
>




      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.