The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: "J.E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Linus Torvalds <torvalds@transmeta.com>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: Voyager subarchitecture for 2.5.46
Date: 06 Nov 2002 11:30:38 -0800	[thread overview]
Message-ID: <1036611039.6098.126.camel@cog> (raw)
In-Reply-To: <200211061503.gA6F3DW02053@localhost.localdomain>

On Wed, 2002-11-06 at 07:03, J.E.J. Bottomley wrote:
> There are certain architectures (voyager is the only one currently supported, 
> but I suspect the Numa machines will have this too) where the TSC cannot be 
> used for cross CPU timings because the processors are driven by separate 
> clocks and may even have different clock speeds.

Yes, I'll confirm your suspicions for some NUMA boxes ;)  The timer_opts
structure was largely created to make it easier to remedy this
situation, allowing alternate time sources to be easily added. 
 
> What I need is an option simply not to compile in the TSC code and use the PIT 
> instead.  What I'm trying to do with the TSC and PIT options is give three 
> choices:
> 
> 1. Don't use TSC (don't compile TSC code): X86_TSC=n, X86_PIT=y
> 
> 2. May use TSC but check first (blacklist, notsc kernel option).  X86_TSC=y, 
> X86_PIT=y
> 
> 3. TSC is always OK so don't need PIT.  X86_TSC=y, X86_PIT=n

Almost all systems are going to want #3. For those that need an
alternate time source (NUMAQ, Voyager, x440, etc) do we really need the
PIT only option(#1)? It can easily be dynamically detected in #2, and
the resulting kernel will run correctly on more machines which makes for
one less special kernel distros have to create/manage.


> Theres also another problem in that the timer_init is called too early in the 
> boot sequence to get a message out to the user, so the panic in timers.c about 
> not finding a suitable timer will never be seen (the system will just lock up 
> on boot).
> 
> Do we have an option for a deferred panic that will trip just after we init 
> the console and clean out the printk buffer?

Yea, I'm actually working on exactly what Alan suggested (timer_none),
to solve this. Thanks for bringing it up though, I occasionally need a
kick in the pants for motivation :) 


> > Then make the arch/i386/timers/Makefile change to be something like:
> > 
> > obj-y := timer.o timer_tsc.o timer_pit.o
> > obj-$(CONFIG_X86_TSC)		-= timer_pit.o #does this(-=) work?
> > obj-$(CONFIG_X86_CYCYLONE)	+= timer_cyclone.o
> 
> Even if it works, the config option style is confusing.  It's easier just to 
> have a positive option (CONFIG_X86_PIT) for this.

I realize that the negative-option that _X86_TSC has become is a bit
confusing, but it is an optimization option, not a feature option. I've
been thinking of something similar to _X86_PIT, but I want to avoid the
PIT only case that you had in your patch, and try to come up with
something that isn't more confusing then what we started with. 

thanks
-john


      parent reply	other threads:[~2002-11-06 19:25 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-05 20:45 Voyager subarchitecture for 2.5.46 J.E.J. Bottomley
2002-11-06  2:31 ` john stultz
2002-11-06 13:43   ` Alan Cox
2002-11-06 21:35     ` john stultz
2002-11-06 15:03   ` J.E.J. Bottomley
2002-11-06 15:38     ` Alan Cox
2002-11-06 16:09       ` Christer Weinigel
2002-11-06 15:45     ` Linus Torvalds
2002-11-06 16:19       ` Alan Cox
2002-11-06 16:12         ` Linus Torvalds
2002-11-06 16:45           ` Alan Cox
2002-11-10 16:30           ` Pavel Machek
2002-11-10 18:59             ` Linus Torvalds
2002-11-10 19:18               ` Pavel Machek
2002-11-10 19:31                 ` Linus Torvalds
2002-11-10 19:42                   ` Pavel Machek
2002-11-10 19:48                     ` Vojtech Pavlik
2002-11-10 20:02                     ` Sean Neakums
2002-11-10 20:16                       ` Lars Marowsky-Bree
2002-11-10 22:11                         ` Alan Cox
2002-11-10 19:46               ` Vojtech Pavlik
2002-11-11 20:40                 ` john stultz
2002-11-11 20:57                   ` J.E.J. Bottomley
2002-11-11 21:36                     ` William Lee Irwin III
2002-11-11 21:58                     ` john stultz
2002-11-11 22:49                       ` J.E.J. Bottomley
2002-11-11 23:12                         ` john stultz
2002-11-12 12:16                     ` Pavel Machek
2002-11-11 22:08                   ` Vojtech Pavlik
2002-11-06 20:07       ` john stultz
2002-11-06 22:36       ` H. Peter Anvin
2002-11-06 19:30     ` john stultz [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=1036611039.6098.126.camel@cog \
    --to=johnstul@us.ibm.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    /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