From: tip-bot for john stultz <johnstul@us.ibm.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@redhat.com,
akpm@linux-foundation.org, johnstul@us.ibm.com,
shemminger@vyatta.com, tglx@linutronix.de
Subject: [tip:x86/tsc] x86: Make tsc=reliable override boot time stability checks
Date: Fri, 28 Aug 2009 19:16:25 GMT [thread overview]
Message-ID: <tip-d3b8f889a220aed825accc28eb64ce283a0d51ac@git.kernel.org> (raw)
In-Reply-To: <1250552447.7212.92.camel@localhost.localdomain>
Commit-ID: d3b8f889a220aed825accc28eb64ce283a0d51ac
Gitweb: http://git.kernel.org/tip/d3b8f889a220aed825accc28eb64ce283a0d51ac
Author: john stultz <johnstul@us.ibm.com>
AuthorDate: Mon, 17 Aug 2009 16:40:47 -0700
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Fri, 28 Aug 2009 21:13:05 +0200
x86: Make tsc=reliable override boot time stability checks
This patch makes the tsc=reliable option disable the boot time
stability checks. Currently the option only disables the runtime
watchdog checks. This change allows folks who want to override the
boot time TSC stability checks and use the TSC when the system would
otherwise disqualify it.
There still are some situations that the TSC will be disqualified,
such as cpufreq scaling. But these are situations where the box will
hang if allowed.
Patch also includes a fix for an issue found by Thomas Gleixner, where
the TSC disqualification message wouldn't be printed after a call to
unsynchronized_tsc().
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: akataria@vmware.com
Cc: Stephen Hemminger <shemminger@vyatta.com>
LKML-Reference: <1250552447.7212.92.camel@localhost.localdomain>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
Documentation/kernel-parameters.txt | 9 +++++----
arch/x86/kernel/tsc.c | 7 +++++--
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 7936b80..4c6b415 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -2484,12 +2484,13 @@ and is between 256 and 4096 characters. It is defined in the file
Format:
<io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>
- tsc= Disable clocksource-must-verify flag for TSC.
+ tsc= Disable clocksource stability checks for TSC.
Format: <string>
[x86] reliable: mark tsc clocksource as reliable, this
- disables clocksource verification at runtime.
- Used to enable high-resolution timer mode on older
- hardware, and in virtualized environment.
+ disables clocksource verification at runtime, as well
+ as the stability checks done at bootup. Used to enable
+ high-resolution timer mode on older hardware, and in
+ virtualized environment.
turbografx.map[2|3]= [HW,JOY]
TurboGraFX parallel port interface
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 71f4368..648fb26 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -825,6 +825,9 @@ __cpuinit int unsynchronized_tsc(void)
if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
return 0;
+
+ if (tsc_clocksource_reliable)
+ return 0;
/*
* Intel systems are normally all synchronized.
* Exceptions must mark TSC as unstable:
@@ -832,10 +835,10 @@ __cpuinit int unsynchronized_tsc(void)
if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) {
/* assume multi socket systems are not synchronized: */
if (num_possible_cpus() > 1)
- tsc_unstable = 1;
+ return 1;
}
- return tsc_unstable;
+ return 0;
}
static void __init init_tsc_clocksource(void)
prev parent reply other threads:[~2009-08-28 19:16 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-17 16:03 clocksource changes in 2.6.31 - possible regression Stephen Hemminger
2009-08-17 17:46 ` Thomas Gleixner
2009-08-17 17:48 ` john stultz
2009-08-17 18:01 ` Stephen Hemminger
2009-08-17 18:15 ` john stultz
2009-08-17 18:27 ` Stephen Hemminger
2009-08-17 18:34 ` Thomas Gleixner
2009-08-17 19:54 ` Stephen Hemminger
2009-08-17 20:04 ` Thomas Gleixner
2009-08-17 20:27 ` Stephen Hemminger
2009-08-17 20:44 ` Thomas Gleixner
2009-08-17 21:10 ` john stultz
2009-08-17 21:37 ` john stultz
2009-08-17 21:45 ` Stephen Hemminger
2009-08-17 22:23 ` john stultz
2009-08-17 23:02 ` Stephen Hemminger
2009-08-17 23:17 ` john stultz
2009-08-17 23:27 ` Stephen Hemminger
2009-08-17 23:40 ` [PATCH] make tsc=reliable override boot time stability checks john stultz
2009-08-18 1:39 ` Alok Kataria
2009-08-19 1:04 ` john stultz
2009-08-28 19:16 ` tip-bot for 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=tip-d3b8f889a220aed825accc28eb64ce283a0d51ac@git.kernel.org \
--to=johnstul@us.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=shemminger@vyatta.com \
--cc=tglx@linutronix.de \
/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