All of lore.kernel.org
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrew Morton <akpm@osdl.org>,
	LKML <linux-kernel@vger.kernel.org>, Ingo Molnar <mingo@elte.hu>,
	Len Brown <lenb@kernel.org>,
	Arjan van de Ven <arjan@infradead.org>, Andi Kleen <ak@suse.de>,
	Roman Zippel <zippel@linux-m68k.org>
Subject: Re: [patch 13/19] GTOD: Mark TSC unusable for highres timers
Date: Thu, 09 Nov 2006 17:10:45 -0800	[thread overview]
Message-ID: <1163121045.836.69.camel@localhost> (raw)
In-Reply-To: <20061109233035.569684000@cruncher.tec.linutronix.de>

On Thu, 2006-11-09 at 23:38 +0000, Thomas Gleixner wrote:
> plain text document attachment
> (gtod-mark-tsc-unusable-for-highres-timers.patch)
> From: Thomas Gleixner <tglx@linutronix.de>
> 
> The TSC is too unstable and unreliable to be used with high resolution timers.
> The automatic detection of TSC unstability fails once we switched to high
> resolution mode, because the tick emulation would use the TSC as reference. 
> This results in a circular dependency.  Mark it unusable for high res upfront.
> 
> [akpm@osdl.org: updated for i386-time-avoid-pit-smp-lockups.patch]
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
> 
> diff -puN arch/i386/kernel/tsc.c~gtod-mark-tsc-unusable-for-highres-timers arch/i386/kernel/tsc.c
> --- a/arch/i386/kernel/tsc.c~gtod-mark-tsc-unusable-for-highres-timers
> +++ a/arch/i386/kernel/tsc.c
> @@ -459,10 +459,23 @@ static int __init init_tsc_clocksource(v
>  		current_tsc_khz = tsc_khz;
>  		clocksource_tsc.mult = clocksource_khz2mult(current_tsc_khz,
>  							clocksource_tsc.shift);
> +#ifndef CONFIG_HIGH_RES_TIMERS
>  		/* lower the rating if we already know its unstable: */
>  		if (check_tsc_unstable())
>  			clocksource_tsc.rating = 0;
> -
> +#else
> +		/*
> +		 * Mark TSC unsuitable for high resolution timers. TSC has so
> +		 * many pitfalls: frequency changes, stop in idle ...  When we
> +		 * switch to high resolution mode we can not longer detect a
> +		 * firmware caused frequency change, as the emulated tick uses
> +		 * TSC as reference. This results in a circular dependency.
> +		 * Switch only to high resolution mode, if pm_timer or such
> +		 * is available.
> +		 */
> +		clocksource_tsc.rating = 50;
> +		clocksource_tsc.is_continuous = 0;
> +#endif
>  		init_timer(&verify_tsc_freq_timer);
>  		verify_tsc_freq_timer.function = verify_tsc_freq;
>  		verify_tsc_freq_timer.expires =


Hmmm. I wish this patch was unnecessary, but I don't see an easy
solution. 

Mind adding a warning so users know why a system that might use the TSC
normally does not use the TSC w/ highres timers?

Otherwise looks ok.

Acked-by: John Stultz <johnstul@us.ibm.com>

thanks
-john


  reply	other threads:[~2006-11-10  1:13 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-09 23:38 [patch 00/21] Highres / dynticks drop in replacement for 2.6.19-rc5-mm1 Thomas Gleixner
2006-11-09 23:38 ` [patch 01/19] hrtimers: state tracking Thomas Gleixner
2006-11-10  9:19   ` Arjan van de Ven
2006-11-10  9:40     ` Andrew Morton
2006-11-10  9:45       ` Thomas Gleixner
2006-11-23 22:26   ` Roman Zippel
2006-11-09 23:38 ` [patch 02/19] hrtimers: clean up callback tracking Thomas Gleixner
2006-11-10  9:20   ` Arjan van de Ven
2006-11-09 23:38 ` [patch 03/19] hrtimers: Move and add documentation Thomas Gleixner
2006-11-09 23:38 ` [patch 04/19] Add a framework to manage clock event devices Thomas Gleixner
2006-11-10  9:47   ` Arjan van de Ven
2006-11-23 22:36   ` Roman Zippel
2006-11-09 23:38 ` [patch 05/19] ACPI: Include apic.h Thomas Gleixner
2006-11-09 23:38 ` [patch 06/19] ACPI: Keep track of timer broadcast Thomas Gleixner
2006-11-10  9:51   ` Arjan van de Ven
2006-11-09 23:38 ` [patch 07/19] ACPI: Add state propagation for dynamic broadcasting Thomas Gleixner
2006-11-10  9:52   ` Arjan van de Ven
2006-11-09 23:38 ` [patch 08/19] i386: cleanup apic code Thomas Gleixner
2006-11-10 10:04   ` Arjan van de Ven
2006-11-10 10:16     ` Thomas Gleixner
2006-11-10 10:16       ` Arjan van de Ven
2006-11-09 23:38 ` [patch 09/19] i386: Convert to clock event devices Thomas Gleixner
2006-11-10 10:10   ` Arjan van de Ven
2006-11-09 23:38 ` [patch 10/19] PM_timer: allow early access and move externs to a header file Thomas Gleixner
2006-11-10 10:12   ` Arjan van de Ven
2006-11-09 23:38 ` [patch 11/19] i386: Rework local APIC calibration Thomas Gleixner
2006-11-10 10:17   ` Arjan van de Ven
2006-11-10 10:23     ` Thomas Gleixner
2006-11-10 11:10     ` Ingo Molnar
2006-11-09 23:38 ` [patch 12/19] high-res timers: core Thomas Gleixner
2006-11-10 10:26   ` Arjan van de Ven
2006-11-09 23:38 ` [patch 13/19] GTOD: Mark TSC unusable for highres timers Thomas Gleixner
2006-11-10  1:10   ` john stultz [this message]
2006-11-10  5:10     ` Andi Kleen
2006-11-10  8:10       ` Thomas Gleixner
2006-11-10  8:50         ` Andrew Morton
2006-11-10  8:57           ` Ingo Molnar
2006-11-10  9:13             ` Andrew Morton
2006-11-10  9:29               ` Andi Kleen
2006-11-11 11:14                 ` Thomas Gleixner
2006-11-11 13:51                   ` Andi Kleen
2006-11-11 13:58                     ` Thomas Gleixner
2006-11-11 13:59                       ` Andi Kleen
2006-11-11 14:08                         ` Thomas Gleixner
2006-11-10 10:35               ` Arjan van de Ven
2006-11-10 10:47                 ` Andi Kleen
2006-11-10 10:55                   ` Arjan van de Ven
2006-11-10 11:13                     ` Ingo Molnar
2006-11-10 11:28                     ` Andi Kleen
2006-11-10  9:27             ` Andi Kleen
2006-11-10 10:14             ` Alan Cox
2006-11-10 11:19               ` Ingo Molnar
2006-11-10 15:43               ` Chris Friesen
2006-11-10 11:12             ` Pavel Machek
2006-11-10 11:48               ` Ingo Molnar
2006-11-10 11:56                 ` Andi Kleen
2006-11-10 13:12                   ` Ingo Molnar
2006-11-10 12:00                 ` Pavel Machek
2006-11-10 13:14                   ` Ingo Molnar
2006-11-10 11:11         ` Pavel Machek
2006-11-10 10:28       ` Arjan van de Ven
2006-11-10 10:30         ` Andi Kleen
2006-11-10 10:37           ` Arjan van de Ven
2006-11-09 23:38 ` [patch 14/19] dynticks: core code Thomas Gleixner
2006-11-09 23:38 ` [patch 15/19] dyntick: add nohz stats to /proc/stat Thomas Gleixner
2006-11-09 23:38 ` [patch 16/19] dynticks: i386 arch code Thomas Gleixner
2006-11-09 23:38 ` [patch 17/19] dynticks: Fix nmi watchdog Thomas Gleixner
2006-11-09 23:38 ` [patch 18/19] high-res timers, dynticks: enable i386 support Thomas Gleixner
2006-11-09 23:38 ` [patch 19/19] debugging feature: timer stats Thomas Gleixner
2006-11-23 22:24 ` [patch 00/21] Highres / dynticks drop in replacement for 2.6.19-rc5-mm1 Roman Zippel

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=1163121045.836.69.camel@localhost \
    --to=johnstul@us.ibm.com \
    --cc=ak@suse.de \
    --cc=akpm@osdl.org \
    --cc=arjan@infradead.org \
    --cc=lenb@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    --cc=zippel@linux-m68k.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.