x86: warn of incorrect cpu_khz on AMD systems
authorPrarit Bhargava <prarit@redhat.com>
Wed, 12 Nov 2008 18:35:00 +0000 (13:35 -0500)
committerIngo Molnar <mingo@elte.hu>
Wed, 12 Nov 2008 18:57:35 +0000 (19:57 +0100)
Impact: add debug check

If none of the perfctrs are free when calculating cpu_khz we default to
using ctr 3 (ie, we just choose 3).  This may lead to an incorrect tsc
freq value which can cause the system to be unstable.

To aid in future debugging, WARN the user of a potential problem.

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/time_64.c

index cb19d65..418a095 100644 (file)
@@ -80,6 +80,8 @@ unsigned long __init calibrate_cpu(void)
                        break;
        no_ctr_free = (i == 4);
        if (no_ctr_free) {
+               WARN(1, KERN_WARNING "Warning: AMD perfctrs busy ... "
+                    "cpu_khz value may be incorrect.\n");
                i = 3;
                rdmsrl(MSR_K7_EVNTSEL3, evntsel3);
                wrmsrl(MSR_K7_EVNTSEL3, 0);