Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys



On Sun, May 10, 2020 at 03:15:22PM -0000, Christos Zoulas wrote:
> In article <20200508220155.446EEFB28%cvs.NetBSD.org@localhost>,
> Andrew Doran <source-changes-d%NetBSD.org@localhost> wrote:
> >-=-=-=-=-=-
> >
> >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().
> 
> The TSC is still faster than it is supposed to be so ntpd does not sync
> (it diverges). It is better than before but not good enough to keep time.

I suspect this problem is related to the MSR-based freq determination rather
than the calibration so hopefully in combo with msaitoh@'s follow-up change
it should be fixed.

Andrew


Home | Main Index | Thread Index | Old Index