]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/tsc: Provide 'tsc=unstable' boot parameter
authorPeter Zijlstra <peterz@infradead.org>
Thu, 13 Apr 2017 12:56:44 +0000 (14:56 +0200)
committerSasha Levin <alexander.levin@microsoft.com>
Wed, 23 May 2018 01:36:24 +0000 (21:36 -0400)
[ Upstream commit 8309f86cd41e8714526867177facf7a316d9be53 ]

Since the clocksource watchdog will only detect broken TSC after the
fact, all TSC based clocks will likely have observed non-continuous
values before/when switching away from TSC.

Therefore only thing to fully avoid random clock movement when your
BIOS randomly mucks with TSC values from SMI handlers is reporting the
TSC as unstable at boot.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
arch/x86/kernel/tsc.c

index 21187ebee7d0906e5b8586fa9bad883e4c8082da..37bae0d677143a1a27f23607c676f941cbd29a80 100644 (file)
@@ -356,6 +356,8 @@ static int __init tsc_setup(char *str)
                tsc_clocksource_reliable = 1;
        if (!strncmp(str, "noirqtime", 9))
                no_sched_irq_time = 1;
+       if (!strcmp(str, "unstable"))
+               mark_tsc_unstable("boot parameter");
        return 1;
 }