Patch to detect 8254 timer munging in BIOS calls (needs testing)

Matthew Dillon dillon at apollo.backplane.com
Sat Nov 20 11:19:31 PST 2004


:On Sat, Nov 20, 2004 at 05:28:05PM -0000, Andreas Hauser wrote:
:> dillon wrote @ Fri, 19 Nov 2004 14:00:51 -0800 (PST):
:> 
:> >     The question is: (a) does this work (detect the access and print the
:> >     warning) and (b) prevent runaway clocks.
:> 
:> Seems to work, but the correction seems to be one hour off.
:> Without the patch my clock was pretty exactly running at twice the expected
:> speed (especially noticable when i benchmarked some of my programms and got
:> double of the expected times), now it runs aligned with the wall clock and
:> the benchmarks are back to what was expected.
:
:Is your system time in UTC or localtime? Does your BIOS have a local time
:flag?
:
:Joerg

    That makes a weird sort of sense, but at that point we aren't using
    the RTC to track the time, and Andreas box is flipping forward multiple
    hours.  i.e. his was forward 2 hours before he corrected it (reading
    from his last posting).

    One hour is ~4 billion 8254 ticks (1.19MHz x 60 x 60 = 32 bit roll over),
    so my guess is that timer_restore() is occassionally breaking something
    in the kernel's 32 bit internal tracking counter (the low 16 bits of
    which is the 8254's current 16 bit count).

    I should have it tracked down ASAP.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Kernel mailing list