Module Name: src Committed By: ad Date: Fri May 8 22:01:55 UTC 2020
Modified Files: src/sys/arch/x86/include: cpu_counter.h src/sys/arch/x86/x86: cpu.c tsc.c src/sys/dev/ic: hpet.c hpetvar.h Log Message: Fix the TSC timecounter (on the systems I have access to): - Make the early i8254-based calculation of frequency a bit more accurate. - Keep track of how far the HPET & TSC advance between HPET attach and secondary CPU boot, and use to compute an accurate value before attaching the timecounter. Initial idea from joerg@. - When determining skew and drift between CPUs, make each measurement 1000 times and pick the lowest observed value. Increase the error threshold to 1000 clock cycles. - Use the frequency computed on the boot CPU for secondary CPUs too. - Remove cpu_counter_serializing(). To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/arch/x86/include/cpu_counter.h cvs rdiff -u -r1.189 -r1.190 src/sys/arch/x86/x86/cpu.c cvs rdiff -u -r1.43 -r1.44 src/sys/arch/x86/x86/tsc.c cvs rdiff -u -r1.15 -r1.16 src/sys/dev/ic/hpet.c cvs rdiff -u -r1.6 -r1.7 src/sys/dev/ic/hpetvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.