On Sun, Apr 26, 2009 at 4:50 PM, Pieter de Goeje <pie...@degoeje.nl> wrote: > Dear hackers, > > While fiddling with the sysctl kern.timecounter.hardware, I found out that on > my system HPET is significantly faster than ACPI-fast. Using the program > below I measured the number of clock_gettime() calls the system can execute > per second. I ran the program 10 times for each configuration and here are > the results: > > x ACPI-fast > + HPET > +-------------------------------------------------------------------------+ > |x +| > |x +| > |x ++| > |x ++| > |x ++| > |x ++| > |A |A| > +-------------------------------------------------------------------------+ > N Min Max Median Avg Stddev > x 10 822032 823752 823551 823397.8 509.43254 > + 10 1498348 1506862 1502830 1503267.4 2842.9779 > Difference at 95.0% confidence > 679870 +/- 1918.94 > 82.5688% +/- 0.233052% > (Student's t, pooled s = 2042.31) > > System details: Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz (3200.02-MHz > 686-class CPU), Gigabyte P35-DS3R motherboard running i386 -CURRENT updated > today. > > Unfortunately I only have one system with a HPET timecounter, so I cannot > verify these results on another system. If similar results are obtained on > other machines, I think the HPET timecounter quality needs to be increased > beyond that of ACPI-fast. > > Regards, > > Pieter de Goeje > > ----- 8< ----- clock_gettime.c ----- 8< ------ > #include <sys/time.h> > #include <stdio.h> > #include <time.h> > > #define COUNT 1000000 > > int main() { > struct timespec ts_start, ts_stop, ts_read; > double time; > int i; > > clock_gettime(CLOCK_MONOTONIC, &ts_start); > for(i = 0; i < COUNT; i++) { > clock_gettime(CLOCK_MONOTONIC, &ts_read); > } > clock_gettime(CLOCK_MONOTONIC, &ts_stop); > > time = (ts_stop.tv_sec - ts_start.tv_sec) + (ts_stop.tv_nsec - > ts_start.tv_nsec) * 1E-9; > printf("%.0f\n", COUNT / time); > }
I'm seeing similar results. [r...@orangebox /usr/home/gcooper]# dmesg | grep 'Timecounter "' Timecounter "i8254" frequency 1193182 Hz quality 0 Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 Timecounter "HPET" frequency 14318180 Hz quality 900 [r...@orangebox /usr/home/gcooper]# ./cgt 1369355 [r...@orangebox /usr/home/gcooper]# sysctl kern.timecounter.hardware="ACPI-fast" kern.timecounter.hardware: HPET -> ACPI-fast [r...@orangebox /usr/home/gcooper]# ./cgt 772289 Why's the default ACPI-fast? For power-saving functionality or because of the `quality' factor? What is the criteria that determines the `quality' of a clock as what's being reported above (I know what determines the quality of a clock visually from a oscilloscope =])? Thanks, -Garrett _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscr...@freebsd.org"