x86/tsc: Provide 'tsc=unstable' boot parameter
authorPeter Zijlstra <peterz@infradead.org>
Thu, 13 Apr 2017 12:56:44 +0000 (14:56 +0200)
committerIngo Molnar <mingo@kernel.org>
Mon, 15 May 2017 08:15:14 +0000 (10:15 +0200)
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>
arch/x86/kernel/tsc.c

index 714dfba6a1e713fb6b5f4268c318f913bb266628..8ab883a4293e406b9b1aa9e7e5975cfae22fc798 100644 (file)
@@ -374,6 +374,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;
 }