Messages in this thread |  | | Subject | Clock inaccuracy seen on NVIDIA nForce2 systems | Date | Wed, 13 Oct 2004 13:30:11 -0700 | From | "Andy Currid" <> |
| |
Various users on this and other Linux forums have reported inaccuracy in the Linux system clock when running on NVIDIA nForce2 hardware. This inaccuracy is often characterized as "clock drift" or "noisiness", such that the clock gains as much as twenty minutes per week. The problem is evident when running in IOAPIC mode, with the programmable interval timer (PIT) interrupt routed through the IOAPIC. The problem is not evident when the PIT interrupt is routed through the legacy PIC hardware.
A possible cause of this behavior is a clock synchronization issue that can arise on some nForce2 systems when interrupts are routed through the IOAPIC, and Spread Spectrum (SS) clocking is enabled. Under certain conditions, this can cause the IOAPIC to issue multiple interrupts to the CPU when it should have issued only one.
If you are experiencing clock inaccuracy on nForce2 hardware, take the following steps to determine if this issue may be the cause:
1. Determine if the hardware you are using may be affected by this problem. The problem is limited to MCP2 and MCP2-T hardware; it does not affect MCP2-S or any nForce3 hardware. MCP2 and MCP2-T hardware may be identified by the PCI device ID of the ISA bridge, which is 0x0060 for these devices.
To read the bridge device ID, use 'lspci -n -s 0:1.0' . The output should be of the form '0000:00:01.0 Class 0601: 10de:0060 (rev a3)'. The device ID of the bridge in this example is "0060" following the NVIDIA PCI vendor ID "10de".
If your ISA bridge device ID is not 0x0060, then this issue is not the cause of any clock inaccuracy you are experiencing.
2. Otherwise, examine the output from 'cat /proc/interrupts'. If IRQ0 (the timer) is shown to be in PIC mode rather than IOAPIC mode, then this issue is not the cause of any clock inaccuracy you are experiencing.
3. Otherwise, reboot your system and enter BIOS SETUP. Check if your BIOS has a Front Side Bus (FSB) Spread Spectrum (SS) clocking option. On many systems, this option is located in the "Advanced Chipset Features" menu. If the option is present and enabled, disable it. Boot Linux and observe the system clock over several hours to verify if this has improved its accuracy.
Regards
Andy -- Andy Currid, NVIDIA Corporation acurrid@nvidia.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |