public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: george anzinger <george@mvista.com>
Cc: Andi Kleen <ak@suse.de>, Alan Cox <alan@lxorguk.ukuu.org.uk>,
	linux-kernel@vger.kernel.org
Subject: Re: Why HZ on i386 is 100 ?
Date: Tue, 23 Apr 2002 21:35:59 +0200	[thread overview]
Message-ID: <20020423213559.A24389@wotan.suse.de> (raw)
In-Reply-To: <3CC4861C.F21859A6@mvista.com.suse.lists.linux.kernel> <E16zuPf-0007yD-00@the-village.bc.nu.suse.lists.linux.kernel> <p73g01m994q.fsf@oldwotan.suse.de> <3CC5B4D6.C982F311@mvista.com>

On Tue, Apr 23, 2002 at 12:24:06PM -0700, george anzinger wrote:
> Andi Kleen wrote:
> > 
> > Alan Cox <alan@lxorguk.ukuu.org.uk> writes:
> > 
> > > > The problem is in accounting (or time slicing if you prefer) where we
> > > > need to start a timer each time a task is context switched to, and stop
> > > > it when the task is switched away.  The overhead is purely in the set up
> > > > and tear down.  MOST of these never expire.
> > >
> > > Done properly on many platforms a variable tick is very very easy and also
> > > very efficient to handle. X86 is a paticular problem case because the timer
> > > is so expensive to fiddle with
> > 
> > Depends. On modern x86 you can either use the local APIC timer or
> > the mmtimers (ftp://download.intel.com/ial/home/sp/mmts097.pdf -
> > should be in newer x86 chipsets). Both should be better than the
> > 8254 timer and are also not expensive to work with.
> 
> I just looked at the mmtimers.  Looks like the right idea but a bit
> overblown.  I would prefer an interrupt generated by a compare to the
> TSC all on board the cpu chip.  This would eliminate the I/O overhead. 

That's the local APIC timer. Pretty much all modern x86 have it.
But at least microsoft warns from using them for high precision 
tim ekeeping on their mmtimer page "due to inaccuracy and 
frequent silicon bugs" (and I guess they have the data for that) 

For scheduling and time accounting it seems to work reasonably though,
even though I've had some problems with inaccuracies (e.g. when you
instrument both 8254 and apic timer and log the TSCs there are sometimes
drifts) 

The linux local APIC timer setup could be probably also improved, for 
example the 16 multiplier is a bit dubious and the calibration does not
look very robust.

> When can we expect to see this in a real cpu?

mmtimers? They are in the chipset, not in the CPU. 
They are in some modern Intel and AMD chipsets already for example and 
Microsoft is pushing them too so I guess they will be soon in all new 
chipsets. 

-Andi


  reply	other threads:[~2002-04-23 19:36 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3CC4861C.F21859A6@mvista.com.suse.lists.linux.kernel>
     [not found] ` <E16zuPf-0007yD-00@the-village.bc.nu.suse.lists.linux.kernel>
2002-04-23  7:17   ` Why HZ on i386 is 100 ? Andi Kleen
2002-04-23 19:09     ` george anzinger
2002-04-24  1:42       ` Alan Cox
2002-04-24 20:20         ` george anzinger
2002-04-27 20:26           ` Alan Cox
2002-04-28  6:02             ` george anzinger
2002-04-28  9:12               ` Alan Cox
2002-04-28 17:34                 ` george anzinger
2002-04-28 18:59                   ` Alan Cox
2002-04-28 21:50                     ` george anzinger
2002-04-29  0:14                       ` Alan Cox
2002-04-23 19:24     ` george anzinger
2002-04-23 19:35       ` Andi Kleen [this message]
2002-04-24 17:25         ` Maciej W. Rozycki
2002-04-17  0:33 Chen, Kenneth W
2002-04-17  1:02 ` Davide Libenzi
  -- strict thread matches above, loose matches on Subject: below --
2002-04-16 10:41 Cabaniols, Sebastien
2002-04-16  7:47 Olaf Fraczyk
2002-04-16  8:14 ` William Lee Irwin III
2002-04-16  8:18   ` BALBIR SINGH
2002-04-16 10:29     ` Liam Girdwood
2002-04-16 10:01       ` Olaf Fraczyk
2002-04-16 13:35         ` Terje Eggestad
2002-04-16 13:38           ` Mark Mielke
2002-04-16 13:55             ` Terje Eggestad
2002-04-16 15:32             ` Rik van Riel
2002-04-16 16:12               ` Chris Friesen
2002-04-16 17:12               ` Mark Mielke
2002-04-16 13:58           ` Alan Cox
2002-04-17  0:22             ` H. Peter Anvin
2002-04-16 16:27         ` Linus Torvalds
2002-04-16 16:50           ` David Mosberger
2002-04-16 17:18             ` Davide Libenzi
2002-04-16 17:52               ` David Mosberger
2002-04-16 18:10                 ` Davide Libenzi
2002-04-17  0:49               ` David Mosberger
2002-04-17  0:57                 ` Robert Love
2002-04-17  1:07                   ` Davide Libenzi
2002-04-17  5:18                   ` Mark Mielke
2002-04-17  5:34                     ` Linus Torvalds
2002-04-17  6:01                       ` Robert Love
2002-04-17  6:17                         ` David Mosberger
2002-04-17  7:59                         ` arjan
2002-04-17  8:04                         ` Matti Aarnio
2002-04-23 22:42                           ` Albert D. Cahalan
2002-04-17 10:12                       ` Martin Dalecki
2002-04-18  1:51                   ` Dan Mann
2002-04-17  1:22                 ` Davide Libenzi
2002-04-17  3:19                 ` Ben Greear
2002-04-17  7:55                 ` Helge Hafting
2002-04-21 18:00                 ` Pavel Machek
2002-04-22 17:20                   ` John Alvord
2002-04-22 21:52                     ` george anzinger
2002-04-22 23:06                       ` J.D. Bakker
2002-04-22 23:26                       ` Anton Blanchard
2002-04-23 19:03                         ` george anzinger
2002-04-23  7:08                       ` Alan Cox
2002-04-22 17:24                   ` David Mosberger
2002-04-16 12:42     ` Richard B. Johnson
2002-04-16 12:31   ` Richard B. Johnson
2002-04-16 14:04 ` Bill Davidsen
2002-04-16 21:34 ` bert hubert
2002-04-16 22:21   ` Andreas Dilger
2002-04-16 22:37     ` Herbert Xu
2002-04-16 22:56       ` Andreas Dilger
2002-04-17  0:34         ` J. Dow
2002-04-17  2:40         ` Herbert Xu
2002-04-17 12:44       ` Kent Borg

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=20020423213559.A24389@wotan.suse.de \
    --to=ak@suse.de \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=george@mvista.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox