public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: clock runs at double speed on x86_64 system w/ATI RS200 chipset
@ 2005-04-03 12:31 Mikael Pettersson
  2005-04-04 14:53 ` Christopher Allen Wing
  0 siblings, 1 reply; 18+ messages in thread
From: Mikael Pettersson @ 2005-04-03 12:31 UTC (permalink / raw)
  To: wingc; +Cc: linux-kernel

On Sat, 2 Apr 2005 13:19:44 -0500 (EST), Christopher Allen Wing wrote:
>On Sat, 2 Apr 2005, Mikael Pettersson wrote:
>
>> >	APIC error on CPU0: 00(40)
>> >	APIC error on CPU0: 40(40)
>>
>> Those are "received illegal vector" errors, and they
>> typically indicate hardware flakiness or BIOS issues.
>>
>> Could be inadequate power supply, inadequate cooling,
>> a BIOS bug (please check for updates), a too new CPU
>> (again, check for a BIOS update), or simply a poorly-
>> designed mainboard.
>
>
>Thanks. I tried the latest BIOS for the board but that did not resolve the
>problem. The clock still runs at double speed (2000 timer
>interrupts/second instead of 1000) and I still get the APIC errors.
>
>I'll enter a support request with the manufacturer.
>
>
>
>I was able to get the problem to go away by using a BIOS option to
>"disable APIC mode". When I do this the kernel outputs at boot:
>
>	ACPI: Using PIC for interrupt routing
>
>and the output of /proc/interrupts reads 'XT-PIC' for everything.
>
>
>If anyone has a suggestion for debugging the clock problem in APIC mode
>I'd be interested. I'm guessing that something is causing the timer
>interrupt to be mapped twice- are there any tools for looking at the ACPI
>tables that may help, or are there kernel boot options to give more detail
>about how the interrupt routing is being set up?

Well, first step is to try w/o ACPI. ACPI is inherently fragile
and bugs there can easily explain your timer problems. Either
recompile with CONFIG_ACPI=n, or boot with "acpi=off pci=noacpi".

/Mikael

^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: clock runs at double speed on x86_64 system w/ATI RS200 chipset
@ 2005-04-02 11:05 Mikael Pettersson
  2005-04-02 18:19 ` Christopher Allen Wing
  0 siblings, 1 reply; 18+ messages in thread
From: Mikael Pettersson @ 2005-04-02 11:05 UTC (permalink / raw)
  To: linux-kernel, wingc

On Fri, 1 Apr 2005 18:24:00 -0500 (EST), Christopher Allen Wing wrote:
>I also see messages from the kernel like:
>
>	APIC error on CPU0: 00(40)
>	APIC error on CPU0: 40(40)
>
>so I'd guess that something is wrong in the way that the machine is set
>up. Perhaps the BIOS or ACPI tables are just defective.

Those are "received illegal vector" errors, and they
typically indicate hardware flakiness or BIOS issues.

Could be inadequate power supply, inadequate cooling,
a BIOS bug (please check for updates), a too new CPU
(again, check for a BIOS update), or simply a poorly-
designed mainboard.

/Mikael

^ permalink raw reply	[flat|nested] 18+ messages in thread
* clock runs at double speed on x86_64 system w/ATI RS200 chipset
@ 2005-04-01 23:24 Christopher Allen Wing
  0 siblings, 0 replies; 18+ messages in thread
From: Christopher Allen Wing @ 2005-04-01 23:24 UTC (permalink / raw)
  To: linux-kernel

I'm testing a system based on a ATI Radeon Xpress 200 motherboard.
(host bridge PCI device 1002:5950)

Something is causing the timer interrupt to be received twice as often as
desired; this makes the clock run at double normal speed.

I first noticed the problem when testing Red Hat 2.4 and 2.6 kernels;
however, I just reproduced it on the latest kernel.org release (2.6.11.6).


While messing around with the 2.4 kernel, I managed to make the problem go
away by getting the timer interrupt to be delivered via the XT-PIC instead
of the APIC. I don't know enough about how the interrupt routing/ACPI
works to figure out what's wrong.


At first I thought the problem seemed similar to the one discussed in June
2004 on lkml under the subject "linux-2.6.7-bk2 runs faster than
linux-2.6.7 ;)"; see:

http://marc.theaimsgroup.com/?w=2&r=1&s=linux-2.6.7-bk2+runs+faster&q=t


However the problem still exists in 2.6.11.6, as well as older Red Hat 2.4
and 2.6 kernels, so I'm guessing that it is an unrelated problem.

In short the timer interrupt gets received twice as many times as it
should:


$ cat /proc/interrupts; sleep 10; cat /proc/interrupts
  0:    2812271    IO-APIC-edge  timer
LOC:    1405962

(only 5 seconds elapse; not 10)

  0:    2822285    IO-APIC-edge  timer
LOC:    1410969



Note that this corresponds to 1000 local APIC timer ints/sec, but 2000
'timer' ints/second.



Here's the dmesg log from booting:

	http://www-personal.engin.umich.edu/~wingc/code/dmesg-2.6.11.6

I also see messages from the kernel like:

	APIC error on CPU0: 00(40)
	APIC error on CPU0: 40(40)

so I'd guess that something is wrong in the way that the machine is set
up. Perhaps the BIOS or ACPI tables are just defective.


I'd appreciate it if anyone familiar with how ACPI and the interrupt
routing could suggest a way to figure out what's going on.


Thanks,

Chris Wing
wingc@engin.umich.edu

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2005-04-07 17:25 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-03 12:31 clock runs at double speed on x86_64 system w/ATI RS200 chipset Mikael Pettersson
2005-04-04 14:53 ` Christopher Allen Wing
2005-04-04 15:32   ` Mikael Pettersson
2005-04-04 21:42     ` Christopher Allen Wing
2005-04-05 17:18   ` Andi Kleen
2005-04-05 18:02     ` Christopher Allen Wing
2005-04-05 18:31       ` Andi Kleen
2005-04-05 18:49         ` Christopher Allen Wing
2005-04-05 19:10         ` Christopher Allen Wing
2005-04-05 19:46         ` Christopher Allen Wing
2005-04-06 20:36         ` Christopher Allen Wing
2005-04-06 22:13         ` [PATCH] Re: clock runs at double speed on x86_64 system w/ATI RS200 chipset (workaround for APIC mode?) Christopher Allen Wing
2005-04-07  7:37           ` Andi Kleen
2005-04-07 17:23             ` Christopher Allen Wing
2005-04-05 18:17     ` clock runs at double speed on x86_64 system w/ATI RS200 chipset (with APIC enabled) Christopher Allen Wing
  -- strict thread matches above, loose matches on Subject: below --
2005-04-02 11:05 clock runs at double speed on x86_64 system w/ATI RS200 chipset Mikael Pettersson
2005-04-02 18:19 ` Christopher Allen Wing
2005-04-01 23:24 Christopher Allen Wing

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox