On Wed, Mar 01, 2017 at 09:39:18PM +0800, Wanpeng Li wrote: > 2017-02-28 16:11 GMT+08:00 Wanpeng Li <kernel...@gmail.com>: > > 2017-02-28 16:08 GMT+08:00 Peter Zijlstra <pet...@infradead.org>: > >> On Tue, Feb 28, 2017 at 09:51:07AM +0800, Wanpeng Li wrote: > >>> diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c > >>> index 4e95b2e..ed8eda4 100644 > >>> --- a/arch/x86/kernel/cpu/amd.c > >>> +++ b/arch/x86/kernel/cpu/amd.c > >>> @@ -557,7 +557,7 @@ static void early_init_amd(struct cpuinfo_x86 *c) > >>> set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC); > >>> if (check_tsc_unstable()) > >>> clear_sched_clock_stable(); > >>> - } else { > >>> + } else if (!boot_cpu_has(X86_FEATURE_HYPERVISOR)) { > >>> clear_sched_clock_stable(); > >>> } > >> > >> That's wrong, you can have HYPERVISOR and still use > >> native_sched_clock() (lguest does that for one). > > > > My posting delay to check this in tsc_init(). > > Does it make sense?
It makes confusion from where I'm sitting. Please look at that latest patch I send. I think it should work, but in case you have doubts, try and find the holes. http://lkml.kernel.org/r/20170228080855.gv6...@twins.programming.kicks-ass.net That marries the sched_clock stable to the existing TSC stable machinery and removes a bunch of quirks.