Date: Thu, 6 Feb 2003 18:18:31 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: "Greg 'groggy' Lehey" <grog@FreeBSD.org> Cc: Poul-Henning Kamp <phk@FreeBSD.org>, <all-committers@FreeBSD.org>, <legacy-committers@FreeBSD.org>, <cvs-all@FreeBSD.org> Subject: Re: cvs commit: src/sys/i386/include clock.h src/sys/i386/i386 tsc.c Message-ID: <20030206174018.R72201-100000@gamplex.bde.org> In-Reply-To: <20030206004940.GH26321@wantadilla.lemis.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 6 Feb 2003, Greg 'groggy' Lehey wrote: > On Wednesday, 5 February 2003 at 1:20:40 -0800, Poul-Henning Kamp wrote: > > phk 2003/02/05 01:20:40 PST > > > > Modified files: > > sys/i386/include clock.h > > sys/i386/i386 tsc.c > > Log: > > i386/i386/tsc.c was repo-copied from i386/isa/clock.c. > > > > Remove all the stuff that does not relate to the TSC. > > > > Change the calibration to use DELAY(1000000) rather than trying to check > > it against the CMOS RTC, this drastically increases precision: Please commit changes separately from removals. This change is actually null unless certain CLK_*CALIBRATION* options are configured, and has no significant effect on precision when they are, since one of them calibrates DELAY() relative to the RTC. > > Using 25 samples on a Athlon 700MHz UP machine I find: > > > > stddev min max average > > CMOS 22200 Hz -74980 Hz 34301 Hz 704928721 Hz > > DELAY 1805 Hz -1984 Hz 2678 Hz 704937583 Hz > > > > (The difference between the two averages is not statistically significant.) This increase of precision is probably only apparent. On at least one of my systems (Abit BXII), measurements over several days show that the clock used by DELAY() (the i8254) uses a scaled version of the same hardware clock as the TSC, since the precision of the TSC relative to the i8254 appears to be arbitrarily good. However, precise measurements of these clocks turn out to be essentially useless except probably for phk's nonstandard hardware, since the accuracy of these clocks is much worse than their precision. Drift of 10-100 parts per million for a 10 degree temperature change is normal. So calibrations more precise than this are not useful. > Does this get rid of the "microuptime went backwards" problem? No. It is unrelated. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030206174018.R72201-100000>