2006-02-23 09:20:26

by Chuck Ebbert

[permalink] [raw]
Subject: [patch] x86_64: warn if unable to configure apic main timer

When using the APIC main timer option on x86_64, sometimes it
fails to complete its setup. Warn about this and suggest
the user try 'disable_timer_pin_1' if their system clock runs
too fast. Also, make printing of the exact result of APIC
timer calibration require 'apic=verbose'.

Signed-off-by: Chuck Ebbert <[email protected]>

--- 2.6.16-rc4-64.orig/arch/x86_64/kernel/apic.c
+++ 2.6.16-rc4-64/arch/x86_64/kernel/apic.c
@@ -738,6 +738,12 @@ static void setup_APIC_timer(unsigned in
apic_runs_main_timer++;
}
local_irq_restore(flags);
+
+ if (apic_runs_main_timer == 1) {
+ printk(KERN_WARNING "Could not configure APIC main timer.\n");
+ printk(KERN_WARNING "Try boot option 'disable_timer_pin_1'"
+ " if your system clock runs too fast.\n");
+ }
}

/*
@@ -786,7 +792,7 @@ static int __init calibrate_APIC_clock(v
result = (apic_start - apic) * 1000L * cpu_khz /
(tsc - tsc_start);
}
- printk("result %d\n", result);
+ apic_printk(APIC_VERBOSE,"APIC timer result %d\n", result);


printk(KERN_INFO "Detected %d.%03d MHz APIC timer.\n",
--
Chuck
"Equations are the Devil's sentences." --Stephen Colbert


2006-02-23 09:25:00

by Andi Kleen

[permalink] [raw]
Subject: Re: [patch] x86_64: warn if unable to configure apic main timer

On Thursday 23 February 2006 10:17, Chuck Ebbert wrote:
> When using the APIC main timer option on x86_64, sometimes it
> fails to complete its setup. Warn about this and suggest
> the user try 'disable_timer_pin_1' if their system clock runs
> too fast. Also, make printing of the exact result of APIC
> timer calibration require 'apic=verbose'.

This is not the right solution. Have to find out what's going
wrong and fix that.

I'm also experimenting with a different way to run the timer
because apicmaintimer doesn't work on a lot of laptops
because they have trouble running the APIC timer during c2.

-Andi

2006-02-23 18:10:49

by Chuck Ebbert

[permalink] [raw]
Subject: Re: [patch] x86_64: warn if unable to configure apic main timer

In-Reply-To: <[email protected]>

On Thu, 23 Feb 2006 at 10:24:38 +0100, Andi Kleen wrote:
> On Thursday 23 February 2006 10:17, Chuck Ebbert wrote:
> > When using the APIC main timer option on x86_64, sometimes it
> > fails to complete its setup. Warn about this and suggest
> > the user try 'disable_timer_pin_1' if their system clock runs
> > too fast. Also, make printing of the exact result of APIC
> > timer calibration require 'apic=verbose'.
>
> This is not the right solution. Have to find out what's going
> wrong and fix that.
>

I was thinking of this more as a band-aid for 2.6.16.

But this patch is broken anyway; it will print the message on
non-bootstrap CPUs.

> I'm also experimenting with a different way to run the timer
> because apicmaintimer doesn't work on a lot of laptops
> because they have trouble running the APIC timer during c2.

Yeah, I saw the Intel patch that does the exact opposite of
apicmaintimer. It's kind of funny having both of them in there.

--
Chuck
"Equations are the Devil's sentences." --Stephen Colbert