From: Ben Greear <greearb@candelatech.com>
To: linux-kernel <linux-kernel@vger.kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>
Subject: PATCH: (v2) Allow user to force 'tsc' to be treated as stable.
Date: Fri, 06 Feb 2009 10:29:19 -0800 [thread overview]
Message-ID: <498C817F.8070306@candelatech.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 459 bytes --]
Allow user to force TSC to be treated as a stable clock-source.
On some systems, with ACPI disabled in the BIOS, the
kernel determines that the TSC is unstable, when it fact
it appears to be fine. This patch allows one to force
the kernel to treat the tsc as stable.
This is against 2.6.29-rc3.
Signed-Off-By: Ben Greear<greearb@candelatech.com>
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
[-- Attachment #2: tsc_patch.txt --]
[-- Type: text/plain, Size: 2366 bytes --]
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index d8362cf..e150946 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -473,6 +473,14 @@ and is between 256 and 4096 characters. It is defined in the file
[SPARC64] tick
[X86-64] hpet,tsc
+ force_tsc_stable=1
+ Force the TSC to be treated as a stable clocksource,
+ even if the rate-watchdog code would otherwise treat
+ it as unstable. If you see
+ 'Clocksource tsc unstable (delta = [num])' in your logs
+ but have reason to think your TSC is OK, then you may
+ want to try this option.
+
clearcpuid=BITNUM [X86]
Disable CPUID feature X for the kernel. See
arch/x86/include/asm/cpufeature.h for the valid bit
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index ca89e15..4788727 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -54,6 +54,7 @@ static LIST_HEAD(clocksource_list);
static DEFINE_SPINLOCK(clocksource_lock);
static char override_name[32];
static int finished_booting;
+static int force_tsc_stable;
/* clocksource_done_booting - Called near the end of core bootup
*
@@ -82,16 +83,29 @@ static unsigned long watchdog_resumed;
#define WATCHDOG_INTERVAL (HZ >> 1)
#define WATCHDOG_THRESHOLD (NSEC_PER_SEC >> 4)
+static int __init parse_force_tsc_stable(char *arg)
+{
+ force_tsc_stable = 1;
+ return 0;
+}
+early_param("force_tsc_stable", parse_force_tsc_stable);
+
+
static void clocksource_ratewd(struct clocksource *cs, int64_t delta)
{
if (delta > -WATCHDOG_THRESHOLD && delta < WATCHDOG_THRESHOLD)
return;
- printk(KERN_WARNING "Clocksource %s unstable (delta = %Ld ns)\n",
- cs->name, delta);
- cs->flags &= ~(CLOCK_SOURCE_VALID_FOR_HRES | CLOCK_SOURCE_WATCHDOG);
- clocksource_change_rating(cs, 0);
- list_del(&cs->wd_list);
+ if (force_tsc_stable && (strcmp(cs->name, "tsc") == 0))
+ printk(KERN_WARNING "Clocksource %s unstable (delta = %Ld ns). Ignoring instability.\n",
+ cs->name, delta);
+ else {
+ printk(KERN_WARNING "Clocksource %s unstable (delta = %Ld ns)\n",
+ cs->name, delta);
+ cs->flags &= ~(CLOCK_SOURCE_VALID_FOR_HRES | CLOCK_SOURCE_WATCHDOG);
+ clocksource_change_rating(cs, 0);
+ list_del(&cs->wd_list);
+ }
}
static void clocksource_watchdog(unsigned long data)
next reply other threads:[~2009-02-06 18:29 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-06 18:29 Ben Greear [this message]
2009-02-07 16:41 ` PATCH: (v2) Allow user to force 'tsc' to be treated as stable Robert Hancock
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=498C817F.8070306@candelatech.com \
--to=greearb@candelatech.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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