system internal timer runs 10 times too slow

Kirill Yelizarov ykirill at yahoo.com
Thu Jul 7 16:55:12 UTC 2011



--- On Thu, 7/7/11, Jeremy Chadwick <freebsd at jdc.parodius.com> wrote:

> From: Jeremy Chadwick <freebsd at jdc.parodius.com>
> Subject: Re: system internal timer runs 10 times too slow
> To: "Aristedes Maniatis" <ari at ish.com.au>
> Cc: "freebsd-stable" <freebsd-stable at freebsd.org>
> Date: Thursday, July 7, 2011, 1:58 PM
> On Thu, Jul 07, 2011 at 07:39:05PM
> +1000, Aristedes Maniatis wrote:
> > We upgraded an existing system to a new
> motherboard/CPU and found that timing in various programs is
> very odd. For example "top" only updates every 10 seconds
> instead of every second. And this confirms the oddness:
> > 
> > # while true; do echo `date`; sleep 1; done
> > Thu Jul 7 19:09:01 EST 2011
> > Thu Jul 7 19:09:11 EST 2011
> > Thu Jul 7 19:09:21 EST 2011
> > 
> > 10 seconds instead of 1.
> > 
> > 
> > So I looked first at the kernel timers:
> > 
> > # dmesg | grep -i time
> > Timecounter "i8254" frequency 1193182 Hz quality 0
> > Timecounter "ACPI-fast" frequency 3579545 Hz quality
> 1000
> > acpi_timer0: <24-bit timer at 3.579545MHz> port
> 0x808-0x80b on acpi0
> > pci3: <multimedia, HDA> at device 0.1 (no driver
> attached)
> > atrtc0: <AT realtime clock> port 0x70-0x71 irq 8
> on acpi0
> > acpi_hpet0: <High Precision Event Timer> iomem
> 0xfed00000-0xfed003ff on acpi0
> > Timecounter "HPET" frequency 14318180 Hz quality 900
> > Timecounters tick every 1.000 msec
> > 
> > 
> > I switched i8254 and then to HPET. No difference.
> > 
> > # sysctl -w kern.timecounter.hardware=i8254
> > kern.timecounter.hardware: ACPI-fast -> i8254
> > # while true; do echo `date`; sleep 1; done
> > Thu Jul 7 19:09:40 EST 2011
> > Thu Jul 7 19:09:41 EST 2011
> > 
> > I switched to TSC:
> > 
> > # sysctl -w kern.timecounter.hardware=TSC
> > kern.timecounter.hardware: HPET -> TSC
> > # while true; do echo `date`; sleep 1; done
> > Thu Jul 7 19:25:56 EST 2011
> > Thu Jul 7 19:25:57 EST 2011
> > Thu Jul 7 19:25:58 EST 2011
> > 
> > Now this looks like it fixed the problem, but actually
> it is worse. Now the clock matches what you'd expect, but
> there is still 10 seconds in real time between those date
> entries. That is, now the system clock is running 10 times
> too slow as well.
> > 
> > 
> > # uname -a
> > FreeBSD delish.ish.com.au 8.2-RELEASE FreeBSD
> 8.2-RELEASE #0: Thu Feb 17 02:41:51 UTC 2011 
>    root at mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC 
> amd64
> > 
> > Base board information
> > Manufacturer: ASUSTeK Computer INC.
> > Product Name: P6X58D-E
> > 
> > BIOS information
> > Vendor: American Megatrends Inc.
> > Version: 0502
> > Release Date: 11/16/2010
> > BIOS Revision: 8.15
> > 
> > CPU Model:    Intel(R) Core(TM) i7
> CPU         960  @
> 3.20GHz
> 
> Do you have anything like powerd(8) enabled, or EIST /
> Intel SpeedStep
> technology enabled in your system BIOS?  If so, can
> you try disabling
> powerd and/or disabling EIST/SS?
> 
> Alternately, and this isn't to say FreeBSD doesn't have a
> problem, do
> you have a replacement/spare motherboard you can try? 
> There's always
> the possibility that you have a bad crystal on the
> motherboard and a
> replacement board would rule that out.

I also suggest to check you C mode hw.acpi.cpu.cx_lowest. I had same behavior on my note some time ago. This happened when i tried to use C3 so i stayed at C2.

Kirill




More information about the freebsd-stable mailing list