From: Arne Fitzenreiter Date: Wed, 17 Aug 2016 18:37:07 +0000 (+0200) Subject: kernel: add hyper-v: mark tsc unstable patch X-Git-Tag: v2.19-core105~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0c29a8ab5843a2f04c070b400e2ccd3de0a4f8a2;p=ipfire-2.x.git kernel: add hyper-v: mark tsc unstable patch Signed-off-by: Arne Fitzenreiter --- diff --git a/lfs/linux b/lfs/linux index bf71776d84..cfea069319 100644 --- a/lfs/linux +++ b/lfs/linux @@ -199,6 +199,7 @@ endif cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/0023-hyperv-Fix-error-return-code-in-netvsc_init_buf.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/0024-hyperv-Fix-a-bug-in-netvsc_send.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/0025-Drivers-hv-vmbus-Support-per-channel-driver-state.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-hyperv_Mark_the_Hyoer-V_TSC_as_unstable.patch # fix empty symbol crc's cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-genksyms_fix_typeof_handling.patch diff --git a/src/patches/linux-hyperv_Mark_the_Hyoer-V_TSC_as_unstable.patch b/src/patches/linux-hyperv_Mark_the_Hyoer-V_TSC_as_unstable.patch new file mode 100644 index 0000000000..d12f46b6a8 --- /dev/null +++ b/src/patches/linux-hyperv_Mark_the_Hyoer-V_TSC_as_unstable.patch @@ -0,0 +1,47 @@ +From 88c9281a9fba67636ab26c1fd6afbc78a632374f Mon Sep 17 00:00:00 2001 +From: Vitaly Kuznetsov +Date: Wed, 19 Aug 2015 09:54:24 -0700 +Subject: x86/hyperv: Mark the Hyper-V TSC as unstable + +The Hyper-V top-level functional specification states, that +"algorithms should be resilient to sudden jumps forward or +backward in the TSC value", this means that we should consider +TSC as unstable. In some cases tsc tests are able to detect the +instability, it was detected in 543 out of 646 boots in my +testing: + + Measured 6277 cycles TSC warp between CPUs, turning off TSC clock. + tsc: Marking TSC unstable due to check_tsc_sync_source failed + +This is, however, just a heuristic. On Hyper-V platform there +are two good clocksources: MSR-based hyperv_clocksource and +recently introduced TSC page. + +Signed-off-by: Vitaly Kuznetsov +Cc: Haiyang Zhang +Cc: K. Y. Srinivasan +Cc: Linus Torvalds +Cc: Peter Zijlstra +Cc: Thomas Gleixner +Cc: devel@linuxdriverproject.org +Link: http://lkml.kernel.org/r/1440003264-9949-1-git-send-email-vkuznets@redhat.com +Signed-off-by: Ingo Molnar +--- + arch/x86/kernel/cpu/mshyperv.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c +index aad4bd8..6fd023d 100644 +--- a/arch/x86/kernel/cpu/mshyperv.c ++++ b/arch/x86/kernel/cpu/mshyperv.c +@@ -141,6 +141,7 @@ static void __init ms_hyperv_init_platform(void) + no_timer_check = 1; + #endif + ++ mark_tsc_unstable("running on Hyper-V"); + } + + const __refconst struct hypervisor_x86 x86_hyper_ms_hyperv = { +-- +cgit v0.12 +