> From: Christian Weisgerber <na...@mips.inka.de>
> Date: Sat, 20 Jun 2020 01:20:33 -0000 (UTC)
> 
> On 2020-06-19, Mark Kettenis <mark.kette...@xs4all.nl> wrote:
> 
> > I'm talking about *skew*, not drift.  If there is a significant drift
> > you already knock out the TSC.
> >
> > What's needed is:
> >
> > 1. A bit of research of what an acceptable skew is.  My hypothesis is
> >    that on many machines with a single socket the TSCs are actually in
> >    synch.  But the way we measure the skew isn't 100% accurate so we
> >    still get a small skew.  If we sample these values on a couple of
> >    machines across a couple of reboots we can probably tell what the
> >    uncertainty in the measurement of the skew is and define a cutoff
> >    based on that.
> 
> So we need amd64 snapshots to enable TSC_DEBUG, maybe a bit prettier
> like below, and then reports:
> 
> cpu0: Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz, 3392.69 MHz, 06-3c-03
> 
> cpu0: TSC skew=0 observed drift=0
> cpu1: TSC skew=-24 observed drift=0
> cpu2: TSC skew=-27 observed drift=0
> cpu3: TSC skew=-25 observed drift=0
> 
> cpu0: TSC skew=0 observed drift=0
> cpu1: TSC skew=-1 observed drift=0
> cpu2: TSC skew=0 observed drift=0
> cpu3: TSC skew=25 observed drift=0
> 
> cpu0: TSC skew=0 observed drift=0
> cpu1: TSC skew=-30 observed drift=0
> cpu2: TSC skew=-39 observed drift=0
> cpu3: TSC skew=-41 observed drift=0
> 
> cpu0: TSC skew=0 observed drift=0
> cpu1: TSC skew=-31 observed drift=0
> cpu2: TSC skew=-37 observed drift=0
> cpu3: TSC skew=-39 observed drift=0
> 
> cpu0: TSC skew=0 observed drift=0
> cpu1: TSC skew=-31 observed drift=0
> cpu2: TSC skew=-34 observed drift=0
> cpu3: TSC skew=-23 observed drift=0

Yes, enabling that for a bit would help us get an idea.  We probably
should have it print the TSC frequency as well though.

> Index: sys/arch/amd64/amd64/tsc.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/amd64/amd64/tsc.c,v
> retrieving revision 1.16
> diff -u -p -r1.16 tsc.c
> --- sys/arch/amd64/amd64/tsc.c        6 Apr 2020 00:01:08 -0000       1.16
> +++ sys/arch/amd64/amd64/tsc.c        19 Jun 2020 23:49:06 -0000
> @@ -217,7 +217,7 @@ void
>  tsc_timecounter_init(struct cpu_info *ci, uint64_t cpufreq)
>  {
>  #ifdef TSC_DEBUG
> -     printf("%s: TSC skew=%lld observed drift=%lld\n", __func__,
> +     printf("%s: TSC skew=%lld observed drift=%lld\n", ci->ci_dev->dv_xname,
>           (long long)ci->ci_tsc_skew, (long long)tsc_drift_observed);
>  #endif
>  
> -- 
> Christian "naddy" Weisgerber                          na...@mips.inka.de
> 
> 

Reply via email to