|
@@ -114,13 +114,12 @@ void __cpuinit check_tsc_sync_source(int cpu)
|
|
return;
|
|
return;
|
|
|
|
|
|
if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) {
|
|
if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) {
|
|
- printk_once(KERN_INFO "Skipping synchronization checks as TSC is reliable.\n");
|
|
|
|
|
|
+ if (cpu == (nr_cpu_ids-1) || system_state != SYSTEM_BOOTING)
|
|
|
|
+ pr_info(
|
|
|
|
+ "Skipped synchronization checks as TSC is reliable.\n");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- pr_info("checking TSC synchronization [CPU#%d -> CPU#%d]:",
|
|
|
|
- smp_processor_id(), cpu);
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Reset it - in case this is a second bootup:
|
|
* Reset it - in case this is a second bootup:
|
|
*/
|
|
*/
|
|
@@ -142,12 +141,14 @@ void __cpuinit check_tsc_sync_source(int cpu)
|
|
cpu_relax();
|
|
cpu_relax();
|
|
|
|
|
|
if (nr_warps) {
|
|
if (nr_warps) {
|
|
- printk("\n");
|
|
|
|
|
|
+ pr_warning("TSC synchronization [CPU#%d -> CPU#%d]:\n",
|
|
|
|
+ smp_processor_id(), cpu);
|
|
pr_warning("Measured %Ld cycles TSC warp between CPUs, "
|
|
pr_warning("Measured %Ld cycles TSC warp between CPUs, "
|
|
"turning off TSC clock.\n", max_warp);
|
|
"turning off TSC clock.\n", max_warp);
|
|
mark_tsc_unstable("check_tsc_sync_source failed");
|
|
mark_tsc_unstable("check_tsc_sync_source failed");
|
|
} else {
|
|
} else {
|
|
- printk(" passed.\n");
|
|
|
|
|
|
+ pr_debug("TSC synchronization [CPU#%d -> CPU#%d]: passed\n",
|
|
|
|
+ smp_processor_id(), cpu);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|