Update Question 5.25:

- Generalize the text
- Put some fresh (6.3-STABLE) output
- Update heuristic info
- Add a "broken ACPI timer" issue from the mailing lists

Reviewed by:	trhodes, danger, remko
Approved by:	gabor (mentor)
This commit is contained in:
Gabor Pali 2008-06-14 10:33:23 +00:00
parent cc71ab4400
commit befdc1805b
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=32246

View file

@ -3703,31 +3703,38 @@ chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02
</qandaentry>
<qandaentry>
<question id="laptop-clock-skew">
<para>Why does the clock on my laptop keep incorrect time?</para>
<question id="computer-clock-skew">
<para>Why does the clock on my computer keep incorrect time?</para>
</question>
<answer>
<para>Your laptop has two or more clocks, and FreeBSD has chosen to
<para>Your computer has two or more clocks, and FreeBSD has chosen to
use the wrong one.</para>
<para>Run &man.dmesg.8;, and check for lines that contain
<literal>Timecounter</literal>. The last line printed is the one
that FreeBSD chose, and will almost certainly be
<literal>TSC</literal>.</para>
<literal>Timecounter</literal>. The one with the highest
quality value that FreeBSD chose.</para>
<screen>&prompt.root; <userinput>dmesg | grep Timecounter</userinput>
Timecounter "i8254" frequency 1193182 Hz
Timecounter "TSC" frequency 595573479 Hz</screen>
Timecounter "i8254" frequency 1193182 Hz quality 0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
Timecounter "TSC" frequency 2998570050 Hz quality 800
Timecounters tick every 1.000 msec</screen>
<para>You can confirm this by checking the
<varname>kern.timecounter.hardware</varname>
&man.sysctl.3;.</para>
<screen>&prompt.root; <userinput>sysctl kern.timecounter.hardware</userinput>
kern.timecounter.hardware: TSC</screen>
<para>The BIOS may modify the TSC clock&mdash;perhaps to change the
kern.timecounter.hardware: ACPI-fast</screen>
<para>It may be a broken ACPI timer. The simplest
solution is to disable the ACPI timer in
<filename>/etc/loader.conf</filename>:
<programlisting>debug.acpi.disabled="timer"</programlisting>
<para>Or the BIOS may modify the TSC clock&mdash;perhaps to change the
speed of the processor when running from batteries, or going into
a power saving mode, but FreeBSD is unaware of these adjustments,
and appears to gain or lose time.</para>
@ -3740,11 +3747,11 @@ kern.timecounter.hardware: TSC</screen>
<screen>&prompt.root; <userinput>sysctl -w kern.timecounter.hardware=i8254</userinput>
kern.timecounter.hardware: TSC -&gt; i8254</screen>
<para>Your laptop should now start keeping more accurate
<para>Your computer should now start keeping more accurate
time.</para>
<para>To have this change automatically run at boot time, add the
following line to <filename>/etc/sysctl.conf</filename>.</para>
following line to <filename>/etc/sysctl.conf</filename>:</para>
<programlisting>kern.timecounter.hardware=i8254</programlisting>
</answer>