> Then when you boot, boot w/ notsc and you should be fine.
> I do want to add some sort of TSC blacklisting so one doesn't always
> have to boot w/ notsc if your machine is detectable/
> compiled-exclusively= for. But I've got a few other issues in the
> queue first.
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.
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
We probably need to make the notsc and dodgy tsc check contingent on X86_PIT
(or a config option that says we have some other timer mechanism compiled in).
Really, the options should probably be handled in timer.c.
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?
> 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.
James
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/