From: Jan Beulich Date: Mon, 13 Feb 2017 14:21:24 +0000 (+0100) Subject: x86/time: tsc_check_writability() may need to be run a second time X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~2804 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=890dc95ca90a643b59a2b67b634f70ea1f2ea3d6;p=xen.git x86/time: tsc_check_writability() may need to be run a second time While we shouldn't remove its current invocation, we need to re-run it for the case that the X86_FEATURE_TSC_RELIABLE feature flag has been cleared, in order to avoid using the TSC rendezvous function in case the TSC can't be written. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper Reviewed-by: Joao Martins --- diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index 699dfb6604..803e154c99 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -1642,6 +1642,14 @@ static int __init verify_tsc_reliability(void) } } + /* + * Re-run the TSC writability check if it didn't run to completion, as + * X86_FEATURE_TSC_RELIABLE may have been cleared by now. This is needed + * for determining which rendezvous function to use (below). + */ + if ( !disable_tsc_sync ) + tsc_check_writability(); + /* * While with constant-rate TSCs the scale factor can be shared, when TSCs * are not marked as 'reliable', re-sync during rendezvous.