public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Nish Aravamudan <nish.aravamudan@gmail.com>
To: Hans Kristian Rosbach <hk@isphuset.no>
Cc: Pavel Machek <pavel@suse.cz>, Andrew Morton <akpm@osdl.org>,
	Con Kolivas <kernel@kolivas.org>,
	andrea@suse.de,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: dynamic-hz
Date: Mon, 13 Dec 2004 20:05:34 -0800	[thread overview]
Message-ID: <29495f1d04121320052e347f70@mail.gmail.com> (raw)
In-Reply-To: <1102942270.17225.81.camel@linux.local>

On Mon, 13 Dec 2004 13:51:11 +0100, Hans Kristian Rosbach
<hk@isphuset.no> wrote:
> 
> 
> On Mon, Dec 13, 2004 at 12:22:29PM +0100, Pavel Machek wrote:
> > I tried defining HZ to 10 once, and there are some #if arrays in the
> > kernel that prevented me from doing that.
> >
> > Some drivers do timeouts based on jiffies; having HZ=1 may turn 20msec
> > timeout into 1sec, that could hurt a lot in the error case...
> 
> On Mon, Dec 13, 2004 at 03:25:21AM -0800, Andrew Morton wrote:
> > We still have 1000-odd places which do things like
> >        schedule_timeout(HZ/10);
> > which will now involve a runtime divide.  The propagation of msleep()
> > and ssleep() will reduce that a bit, but not much.
> 
> Shouldn't that be regarded as a bug/deprecated?
> 
> I'm not sure what the above "scedule_timeout(HZ/10)" is supposed to
> do, but the parameter it gets in 1000hz is "100" so I assume this
> is because we want to wait for 100ms, and in 1000hz that equals
> 100 cycles. Correct?

schedule_timeout() specifies a sleep in jiffies -- it's actually a
rather annoying interface for the very reason that it depends on the
value of HZ how *long* you actually will sleep for (in human time
units). So your assumption is incorrect, presuming the code author
knows what they are doing. They wish to sleep for 1/10 the number of
timer ticks in a second. What this translates to, though, clearly
depends on HZ. Thus

msleep{,_interruptible}(100);

would be far better to use (it calls schedule_timeout() correctly
[another thing not done often]). Also, if you look carefully at the
timer code, you'll notice that the x86 timer frequency is not actually
1000 Hz, it's actually less. Thus you run into issues with timer
intervals... But, in any case, specifying a timeout of 100 msecs is
different then specifying a timeout of 100 cycles on x86. I'm not sure
what it exactly translates to, but it will be more. Hence, you should
use msleep() not schedule_timeout() directly. Jiffies should not be
what you base your timing on; msecs & secs are easier and less likely
to be misused.

> then in the rest of the code we can use ex:
> schedule_timeout(varX*100) for 100ms no matter what hz is.

No, please don't. Use msleep() or msleep_interruptible(). Let the
conversion functions take care of the conversions.

> With hz=50 then the lowest ms is 20 for one tick though. And that
> might trigger problems with approximation at some point.
> varX would have to be decimal, and that might also be a problem?

No floating point in the kernel...

-Nish

  parent reply	other threads:[~2004-12-14  4:15 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-11 14:23 dynamic-hz Andrea Arcangeli
2004-12-11 14:50 ` dynamic-hz Zwane Mwaikambo
2004-12-12  6:57   ` dynamic-hz Andrea Arcangeli
2004-12-11 21:41 ` dynamic-hz Jan Engelhardt
2004-12-12 16:35 ` dynamic-hz Pavel Machek
2004-12-12 22:23   ` dynamic-hz Andrea Arcangeli
2004-12-12 23:36     ` dynamic-hz Con Kolivas
2004-12-12 23:42       ` dynamic-hz Pavel Machek
2004-12-13  0:09         ` dynamic-hz Con Kolivas
2004-12-13  8:37           ` dynamic-hz Jan Engelhardt
2004-12-13 10:43           ` dynamic-hz Pavel Machek
2004-12-13 11:08             ` dynamic-hz Andrea Arcangeli
2004-12-13 19:36               ` dynamic-hz john stultz
2004-12-12 23:43       ` dynamic-hz Andrea Arcangeli
2004-12-13  0:18         ` dynamic-hz Con Kolivas
2004-12-13  0:27           ` dynamic-hz Andrea Arcangeli
2004-12-13  1:50             ` dynamic-hz Zwane Mwaikambo
2004-12-13 11:28               ` dynamic-hz Andrea Arcangeli
2004-12-13 12:43                 ` dynamic-hz Pavel Machek
2004-12-13 12:58                   ` dynamic-hz Andrea Arcangeli
2004-12-13 19:12                     ` dynamic-hz Pavel Machek
2004-12-13 20:34                       ` dynamic-hz john stultz
2004-12-13 20:49                         ` dynamic-hz Pavel Machek
2004-12-14  2:04                           ` dynamic-hz Andrea Arcangeli
     [not found]                           ` <20041214013924.GB14617@atomide.com>
2004-12-14  9:37                             ` dynamic-hz Pavel Machek
2004-12-14 21:18                               ` dynamic-hz Tony Lindgren
2004-12-14 22:06                                 ` dynamic-hz Pavel Machek
2004-12-14 23:00                                   ` dynamic-hz linux-os
2004-12-14 23:13                                     ` dynamic-hz Tony Lindgren
2004-12-22 20:02                                       ` dynamic-hz Tony Lindgren
2004-12-14 23:04                                   ` dynamic-hz Tony Lindgren
2004-12-14  2:46                         ` dynamic-hz Andrea Arcangeli
2004-12-14 19:24                           ` dynamic-hz john stultz
2004-12-14  2:36                       ` dynamic-hz Andrea Arcangeli
2004-12-14  9:39                         ` dynamic-hz Pavel Machek
2004-12-14  9:59                         ` dynamic-hz Pavel Machek
2004-12-14 15:25                           ` dynamic-hz Andrea Arcangeli
2004-12-14 22:02                             ` USB making time drift [was Re: dynamic-hz] Pavel Machek
2004-12-14 23:16                               ` Andrea Arcangeli
2004-12-15  2:59                                 ` Gene Heskett
2004-12-15  9:17                                   ` Andrea Arcangeli
2004-12-15 16:44                                     ` Gene Heskett
2004-12-15 18:20                                       ` Andrea Arcangeli
2004-12-16  1:59                                         ` Gene Heskett
2004-12-16 11:30                                           ` Andrea Arcangeli
2004-12-16 12:50                                           ` Alan Cox
2004-12-15 20:16                                       ` Pavel Machek
2004-12-16  2:02                                         ` Gene Heskett
2004-12-15 17:03                                     ` Gene Heskett
2004-12-15 17:48                                       ` Tim Schmielau
2004-12-16  2:03                                         ` Gene Heskett
2004-12-16  0:58                                 ` Pavel Machek
2004-12-16  2:33                                   ` john stultz
2004-12-16  1:15                               ` Time goes crazy in 2.6.9 after long cli [was Re: USB making time drift] Pavel Machek
2004-12-16 11:13                                 ` Andrea Arcangeli
2004-12-16 12:49                                   ` Alan Cox
2004-12-13 14:50                 ` dynamic-hz Zwane Mwaikambo
2004-12-13  7:43       ` dynamic-hz Stefan Seyfried
2004-12-13 13:58         ` dynamic-hz Russell King
2004-12-13 14:14           ` dynamic-hz Russell King
2004-12-13 14:52           ` dynamic-hz Alan Cox
2004-12-13 16:23             ` dynamic-hz Russell King
2004-12-13 17:53               ` dynamic-hz Michael Buesch
2004-12-13 18:04                 ` dynamic-hz Russell King
2004-12-13 19:04               ` dynamic-hz Pavel Machek
2004-12-13 20:11               ` dynamic-hz Russell King
2004-12-14  0:16             ` dynamic-hz Eric St-Laurent
2004-12-15 18:04               ` dynamic-hz Alan Cox
2004-12-15 19:54                 ` dynamic-hz linux-os
2004-12-16  2:17                   ` dynamic-hz Gene Heskett
2004-12-16 12:42                     ` dynamic-hz linux-os
2004-12-17 20:12                     ` dynamic-hz H. Peter Anvin
2004-12-16  9:10                 ` dynamic-hz Gabriel Paubert
2004-12-16 12:17                   ` dynamic-hz Geert Uytterhoeven
2004-12-16 14:00                   ` dynamic-hz Mitchell Blank Jr
2004-12-13 15:30           ` dynamic-hz Zwane Mwaikambo
2004-12-13 15:59             ` dynamic-hz Russell King
2004-12-13 16:14               ` dynamic-hz Pavel Machek
2004-12-13 16:06           ` dynamic-hz Pavel Machek
2004-12-13 16:19         ` dynamic-hz Jan Engelhardt
2004-12-13  8:29       ` dynamic-hz Jan Engelhardt
2004-12-14 22:54         ` dynamic-hz Lee Revell
2004-12-14 23:38           ` dynamic-hz Chris Friesen
2004-12-15  8:32             ` dynamic-hz Jan Engelhardt
2004-12-13 11:02       ` dynamic-hz Andrew Morton
2004-12-13 11:17         ` dynamic-hz Andrea Arcangeli
2004-12-13 11:25           ` dynamic-hz Andrew Morton
2004-12-13 11:47             ` dynamic-hz Andrea Arcangeli
2004-12-14  3:56               ` dynamic-hz Nish Aravamudan
2004-12-14  3:54             ` dynamic-hz Nish Aravamudan
2004-12-14  4:29               ` dynamic-hz Andrew Morton
2004-12-14  5:25                 ` dynamic-hz Nish Aravamudan
2004-12-17 20:10                 ` dynamic-hz Nish Aravamudan
2004-12-14 10:01               ` dynamic-hz Domen Puncer
2004-12-14 16:56                 ` dynamic-hz Nish Aravamudan
2004-12-14 14:23               ` dynamic-hz linux-os
2004-12-14 16:54                 ` dynamic-hz Nish Aravamudan
2004-12-14 17:15                   ` dynamic-hz Andrea Arcangeli
2004-12-14 17:42                     ` dynamic-hz Nish Aravamudan
2004-12-14 18:29                       ` dynamic-hz Andrea Arcangeli
2004-12-14 19:00                         ` dynamic-hz Nish Aravamudan
2004-12-14 18:22                     ` dynamic-hz linux-os
2004-12-14 18:38                       ` dynamic-hz Andrea Arcangeli
2004-12-14 18:50                       ` dynamic-hz Pavel Machek
2004-12-13 11:19         ` dynamic-hz Hans Kristian Rosbach
2004-12-13 11:22           ` dynamic-hz Pavel Machek
2004-12-13 11:39             ` dynamic-hz Andrea Arcangeli
2004-12-13 12:51             ` dynamic-hz Hans Kristian Rosbach
2004-12-13 13:01               ` dynamic-hz Andrea Arcangeli
2004-12-13 13:02                 ` dynamic-hz Andrea Arcangeli
2004-12-13 15:06               ` dynamic-hz Geert Uytterhoeven
2004-12-13 16:12                 ` dynamic-hz Pavel Machek
2004-12-13 16:14                   ` dynamic-hz Geert Uytterhoeven
2004-12-14  4:06                   ` dynamic-hz Nish Aravamudan
2004-12-14  4:05               ` Nish Aravamudan [this message]
2004-12-13 11:33           ` dynamic-hz Andrea Arcangeli
2004-12-13 14:38           ` dynamic-hz Zwane Mwaikambo
2004-12-13 12:00       ` dynamic-hz Alan Cox
2004-12-13 15:52         ` dynamic-hz Andrea Arcangeli
2004-12-14 22:28       ` dynamic-hz Lee Revell
2004-12-14 22:40         ` dynamic-hz Con Kolivas
2004-12-14 22:50           ` dynamic-hz Lee Revell
2004-12-13 20:26 ` dynamic-hz Olaf Hering
2004-12-13 22:41   ` dynamic-hz Andrea Arcangeli
2004-12-13 20:56 ` dynamic-hz john stultz
2004-12-13 22:21   ` dynamic-hz Andrea Arcangeli

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=29495f1d04121320052e347f70@mail.gmail.com \
    --to=nish.aravamudan@gmail.com \
    --cc=akpm@osdl.org \
    --cc=andrea@suse.de \
    --cc=hk@isphuset.no \
    --cc=kernel@kolivas.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@suse.cz \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox