Hardware Environment: AMD64 3500+ (UP) running in 32-bit mode, chipset: ATI RX480
In the default configuration, i.e., without any kernel parameters, Linux uses
ACPI to set up an APIC to do the interrupt routing. However, in this mode the
system clock (using either tsc or pmtmr) runs exactly twice as fast as it
should; this can be easily checked by comparing the system clock with the RTC.
Looking at /proc/interrupts I can see that there are still 1000 timer interrupts
per second, so it looks as if for each timer interrupt the system clock would be
This problem does not occur with 2.6.9.
The problem does not occur with kernel parameters acpi=noirq (but then no APIC
Steps to reproduce: start the computer ;-)
Created attachment 4446 [details]
Created attachment 4447 [details]
Created attachment 4448 [details]
Quite interesting, could you please attach the /proc/interrupts output?
Here you are:
0: 775827 IO-APIC-edge timer
1: 1769 IO-APIC-edge i8042
8: 2 IO-APIC-edge rtc
12: 67 IO-APIC-edge i8042
14: 631 IO-APIC-edge ide2
15: 46795 IO-APIC-edge ide3
17: 1 IO-APIC-level ATI IXP
21: 47 IO-APIC-level acpi, HiSax
23: 539 IO-APIC-level ide0
(ATI IXP above is the sound card, HiSax is an ISDN/BRI card)
PS: Thank you for your interest :)
Ok, did you try unload acpi processor driver or load the driver with parameter
Is this a question or a suggestion? I did not since I have never heard of this
before. I can try processor.nocst although it seems I have to apply a patch for
Ok, just remove the processor driver, let's look at the result.
OK, so I started Linux with only a minimal set of modules loaded (serio, i8042,
rtc), and it didn
FWIIW, this also happens with a 64 bit kernel (same sources).
Hmm, could you please indicate how do you compare the time? It appears I can't
reproduce the issue in all systems at hand.
Well, I run
0: 775827 IO-APIC-edge timer
Something is wrong here. Typically you should see LOC (mostly local APIC timer
interrupts) match with external timer interrupt. In this case, external timer
interrupt seems to be delivering double the number of interrupts.
Are you sure you are only seeing 1000 interrupts per sec on IRQ0?
Apparently I was a bit imprecise with my statement about the 1000 interrupts per
sec. So here is the output of
Looks like the LAPIC timer is right. How about with boot option 'noapic'?
With kernel parameters
Just a status update: happens also with 2.6.11 (vanilla).
You possibly can narrow down this problem by revert some patches between 2.6.9
and 2.6.10, since you said 2.6.9 is ok. This is very trival, but we have no
idea otherwise, :(.
I have the same or similar problem, on similar hardware: Athlon64 on ATI chipset
(Radeon Xpress 200; host bridge PCI ID 1002:5950).
However, 2.6.9 is NOT good for me: the clock runs at double speed on 2.6.9,
188.8.131.52, as well as various Red Hat kernels (both 2.4 and 2.6).
My BIOS has an option to disable the APIC. When the APIC is disabled in the
BIOS, the clock works properly. When the APIC is enabled, I get double the
number of timer interrupts per second as should be.
$ cat /proc/interrupts; sleep 10; cat /proc/interrupts
0: 1184082 IO-APIC-edge timer
(5 seconds elapse, not 10)
0: 1194092 IO-APIC-edge timer
which corresponds to 1000 local APIC timer interrupts/second, but 2000 'timer'
ints/second. (which causes the clock to run twice as fast)
I have to apologize for causing confusion about the 2.6.9, but when I tried
recently 2.6.9 again to follow David
*** This bug has been marked as a duplicate of 3927 ***