On Wed, Mar 24, 2021 at 05:40:21PM +0900, YASUOKA Masahiko wrote: > Hi, > > I hit a problem which is caused by going back of monotonic time. It > happens on hosts on VMware ESXi. > > I wrote the program which repeats the problem. > > % cc -o monotime monotime.c -lpthread > % ./monotime > 194964 Starting > 562210 Starting > 483046 Starting > 148865 Starting > 148865 Back 991.808048665 => 991.007447931 > 562210 Back 991.808048885 => 991.007448224 > 483046 Back 991.808049115 => 991.007449172 > 148865 Stopped > 562210 Stopped > 483046 Stopped > 194964 Stopped > % uname -a > OpenBSD yasuoka-ob-c.tokyo.iiji.jp 6.8 GENERIC.MP#5 amd64 > % sysctl kern.version > kern.version=OpenBSD 6.8 (GENERIC.MP) #5: Mon Feb 22 04:36:10 MST 2021 > > r...@syspatch-68-amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP > % > > monotime.c > ---- > #include <sys/types.h> > #include <sys/time.h> > #include <stdio.h> > #include <time.h> > #include <unistd.h> > #include <pthread.h> > #include <stdlib.h> > > #define NTHREAD 4 > #define NTRY 50000 > > void * > start(void *dummy) > { > int i; > struct timespec ts0, ts1; > > printf("%d Starting\n", (int)getthrid()); > clock_gettime(CLOCK_MONOTONIC, &ts0); > > for (i = 0; i < NTRY; i++) { > clock_gettime(CLOCK_MONOTONIC, &ts1); > if (timespeccmp(&ts0, &ts1, <=)) { > ts0 = ts1; > continue; > } > printf("%d Back %lld.%09lu => %lld.%09lu\n", > (int)getthrid(), ts0.tv_sec, ts0.tv_nsec, ts1.tv_sec, > ts1.tv_nsec); > break; > } > printf("%d Stopped\n", (int)getthrid()); > > return (NULL); > } > > int > main(int argc, char *argv[]) > { > int i, n = NTHREAD; > pthread_t *threads; > > threads = calloc(n, sizeof(pthread_t)); > > for (i = 0; i < n; i++) > pthread_create(&threads[i], NULL, start, NULL); > for (i = 0; i < n; i++) > pthread_join(threads[i], NULL); > > } > ---- > > The machine has 4 vCPUs and showing the following message on boot. > > cpu1: disabling user TSC (skew=-5310) > cpu2: disabling user TSC (skew=-5335) > cpu3: disabling user TSC (skew=-7386) > > This means "user TSC" is disabled because of TSC of cpu{1,2,3} is much > delayed against cpu0. > > Simply ignoring the skews by the following diff seems to workaround > this problem. > > diff --git a/sys/arch/amd64/amd64/tsc.c b/sys/arch/amd64/amd64/tsc.c > index 238a5a068e1..3b951a8b5a3 100644 > --- a/sys/arch/amd64/amd64/tsc.c > +++ b/sys/arch/amd64/amd64/tsc.c > @@ -212,7 +212,8 @@ cpu_recalibrate_tsc(struct timecounter *tc) > u_int > tsc_get_timecount(struct timecounter *tc) > { > - return rdtsc_lfence() + curcpu()->ci_tsc_skew; > + //return rdtsc_lfence() + curcpu()->ci_tsc_skew; > + return rdtsc_lfence(); > } > > void > > So I supposed the skews are not calculated properly. Also I found > NetBSD changed the skew calculating so that it checks 1000 times and > take the minimum value. > > > https://github.com/NetBSD/src/commit/1dec05c1ae197b4acfc7038e49dfddabcbed0dff > > https://github.com/NetBSD/src/commit/66d76b89792bac1c71cd5507ba62b08ad02129ef > > > I checked skews on the machine by the following debug code. > > diff --git a/sys/arch/amd64/amd64/tsc.c b/sys/arch/amd64/amd64/tsc.c > index 238a5a068e1..83e835e4f82 100644 > --- a/sys/arch/amd64/amd64/tsc.c > +++ b/sys/arch/amd64/amd64/tsc.c > @@ -302,16 +302,42 @@ tsc_read_bp(struct cpu_info *ci, uint64_t *bptscp, > uint64_t *aptscp) > *aptscp = tsc_sync_val; > } > > +#define TSC_SYNC_NTIMES 1000 > + > +static int tsc_difs[MAXCPUS][TSC_SYNC_NTIMES]; > + > +void > +tsc_debug(void) > +{ > + int i, cpuid = curcpu()->ci_cpuid; > + > + for (i = 0; i < TSC_SYNC_NTIMES; i++) { > + if (i % 10 == 0) > + printf("%5d", tsc_difs[cpuid][i]); > + else > + printf(" %5d", tsc_difs[cpuid][i]); > + if (i % 10 == 9) > + printf("\n"); > + } > + printf("\n"); > +} > + > void > tsc_sync_bp(struct cpu_info *ci) > { > + int i, mindif = INT_MAX, dif; > uint64_t bptsc, aptsc; > > - tsc_read_bp(ci, &bptsc, &aptsc); /* discarded - cache effects */ > - tsc_read_bp(ci, &bptsc, &aptsc); > + for (i = 0; i < TSC_SYNC_NTIMES; i++) { > + tsc_read_bp(ci, &bptsc, &aptsc); > + dif = bptsc - aptsc; > + if (abs(dif) < abs(mindif)) > + mindif = dif; > + tsc_difs[ci->ci_cpuid][i] = dif; > + } > > /* Compute final value to adjust for skew. */ > - ci->ci_tsc_skew = bptsc - aptsc; > + ci->ci_tsc_skew = mindif; > } > > /* > @@ -342,8 +368,10 @@ tsc_post_ap(struct cpu_info *ci) > void > tsc_sync_ap(struct cpu_info *ci) > { > - tsc_post_ap(ci); > - tsc_post_ap(ci); > + int i; > + > + for (i = 0; i < TSC_SYNC_NTIMES; i++) > + tsc_post_ap(ci); > } > > void > > ---- > Stopped at db_enter+0x10: popq %rbp > ddb{0}> machine ddbcpu 1 > Stopped at x86_ipi_db+0x12: leave > ddb{1}> call tsc_debug > -8445 -6643 -52183 0 -3 -4 -7 -11 -5 0 > -11 -9 -5 -3 -4 -3 -7 8 -5 -6 > -5 -9 -3 -9 -7 -1 -5 -5 -9 -2 > -6 -4 -6 -4 -11 -8 -3 -4 -8 -1 > -9 -1 -8 1 -8 6 -5 -4 2 -2 > -8 -3 -1 -5 -2 -2 1 2 -2 -9 > -12 0 -9 -2 -2 -5 -2 1 2 0 > -1 2 -2 6 -5 -1 -2 -4 2 -2 > 0 -9 -9 -6 -2 2 3 -6 -1 3 > 8 4 -2 2 -8 7 1 2 -2 1 > -2 -6 -2 5 0 0 -4 -9 6 -2 > -3 -6 -2 -12 1 -9 -2 -3 -10 10 > 2 -1 -3 -2 3 1 1 -5 3 -3 > -5 1 -6 -2 -3 0 0 9 1 6 > 8 -6 5 4 -12 -1 4 2 -1 -1 > -1 2 2 0 -5 1 2 -8 3 9 > 0 6 -3 4 6 0 8 6 -14 -1 > -1 0 -6 -7 6 -10 7 -6 -5 -4 > 6 -12 4 3 -5 5 1 -6 3 0 > -2 0 6 -9 -2 -1 1 -1 4 0 > 4 10 -13 1 -8 -2 -8 -3 -5 -3 > -5 -5 1 -9 -9 0 -3 -1 2 6 > -2 2 -3 -9 -9 -11 -7 -6 -4 -9 > -4 -9 -3 -4 0 -5 0 -9 -12 -7 > -6 -9 1 -5 -4 -12 7 -3 -12 -4 > -5 -5 -6 -9 -7 -1 0 0 -1 -2 > -6 -8 0 1 -8 -5 -2 -4 0 -1 > -3 -10 -15 -3 -8 -11 -9 -9 2 0 > -2 -4 -2 -3 -13 -9 -9 -1 -10 -6 > 0 0 2 -2 -4 1 -6 0 0 -5 > -2 -7 -5 -2 -2 1 -2 -6 -1 -7 > -6 -1 -9 -3 -2 -1 -4 -6 -3 -4 > -4 -3 -4 -11 1 -9 0 -3 2 -9 > -8 2 -1 -7 -5 -5 -9 2 -3 -5 > 0 5 -12 0 -5 -3 -6 -1 -13 -10 > -9 0 0 -5 -7 -4 -3 -3 -3 -2 > -2 3 -5 -3 -5 -1 -7 -4 -10 0 > -3 0 2 1 -4 -1 -5 -3 -5 -6 > -4 -8 -3 0 -1 -2 -13 -10 -9 -5 > -11 -11 -4 -3 0 5 -2 -3 -6 0 > -6 -9 -1 -4 -1 2 -2 -7 -9 0 > -8 -4 -6 -5 -12 -9 -5 -11 -5 -8 > -8 -6 -2 -3 -9 -5 -9 -11 -10 1 > -3 -6 -1 -1 -6 0 0 -8 -4 0 > -3 -10 -4 -2 -3 -2 -1 -9 -11 -12 > -4 2 -2 -5012 5 2 -17 0 7 -5 > 0 -4 -3 6 -7 -1 -1 4 -6 3 > 0 -4 -9 -7 -11 -11 8 -7 -15 -10 > 3 -4 1 -17 -4 3 -17 0 4 3 > -2 0 -3 -10 -2 1 3 -5 -12 -19 > 1 2 5 1 -9 4 -2 -3 -4 0 > -1 -11 -3 -1 -9 -5 0 -8 7 -2 > -6 -7 4 -5 -2 -1 -5 0 -5 -5 > -14 -2 -8 0 -11 9 -10 2 -6 -17 > -3 -5 -6 2 0 9 -14 0 -4 -7 > 6 2 2 -9 -9 5 5 0 -6 3 > -12 5 -2 -13 -10 -5 -7 2 -11 -3 > -6 -2 -13 1 8 -5 -14 2 4 -3 > -13 -5 -11 -9 -10 4 -3 -1 9 -17 > -11 2 -13 -2 -1 -9 -10 0 -5 -4 > 0 10 -8 -5 -8 -3 -14 -6 3 -15 > 1 -5 1 176 -8 -7 -7 -4 -1 -1 > -8 -7 -4 1 -6 -9 1 -2 -9 -4 > -4 -1 -7 0 -8 -3 -4 -3 -1 -2 > -5 -6 -9 2 -6 0 -8 -5 0 -9 > -10 0 -4 4 -6 -11 -3 2 -12 1 > -2 -6 -6 -3 -7 -7 0 -9 -1 -9 > -1 -8 -4 -3 -11 1 0 1 -2 -4 > -11 -1 -9 -9 -10 -1 -1 -9 -8 -6 > -3 -4 -2 -4 1 0 -5 -2 -1 4 > -9 -1 -4 1 -8 -11 0 -10 -4 -9 > -5 -2 -2 4 0 -7 -4 1 -2 1 > -4 -1 -5 -9 -9 -5 -10 -4 -12 -8 > -4 -9 -7 -5 -3 3 -5 -12 -3 0 > -8 -4 -9 -5 -6 0 0 -1 -2 -6 > -8 -12 -3 1 2 -6 -1 -7 -10 -9 > -6 -8 0 -2 -3 -7 -3 -2 6 -3 > -12 0 0 -7 -9 -6 -1 -5 -2 -9 > -6 1 0 -3 -1 -1 -2 2 -2 -3 > -7 -9 -1 -8 -4 -2 5 -5 -3 -10 > 2 6 -3 0 -6 -8 -9 -1 -1 -7 > -8 -1 -1 -4 -4 7 -2 -10 -11 -6 > 2 2 -4 3 -2 -1 -3 0 0 -7 > -1 -3 -4 -9 -5 -2 -5 -7 -5 -3 > 0 1 -3 5 -3 -4 -1 -6 -9 -4 > -6 0 -9 -6 0 -2 4 -2 -4 -10 > -9 -4 -3 -9 -3 -6 -9 -8 -4 1 > -5 -6 -5 1 0 -2 -3 -6 -5 -9 > -4 1 -5 -4 -2 -4 -8 -3 -4 0 > 2 -5 -3 -7 -1 -2 -1 -9 -6 -15 > -10 -6 -2 -7 -1 -3 3 -6 -6 -9 > -10 -8 -9 -2 -3 0 -6 3 -4 4 > 3 3 8 -2 -2 -4 0 -3 -9 -3 > -6 -4 3 2 1 1 -3 -7 -15 -1 > -4 -6 -1 -2 -1 -12 2 -1 -4 1 > 2 3 -5 3 -3 -7 -6 -5 0 1 > 5 -13 -8 0 -5 2 0 -5 -3 6 > -4 -9 -2 -8 -1 -9 -10 -1 -10 -6 > -10 -4 -10 -9 -2 1 0 -4 -3 0 > 1 -3 -1 -4 -7 -10 -13 -8 -1 -1 > > 0x1 > ddb{1}> machine ddbcpu 2 > Stopped at x86_ipi_db+0x12: leave > ddb{2}> call tsc_debug > -8242 -6496 -50265 -1 -2 -2 1 109 -2 -3 > 3 3 -8 -3 -4 4 0 -8 -7 -5 > -5 3 -7 -5 -4 -9 -7 -3 0 2 > -5 2 1 3 -2 3 8 -6 -11 8 > 8 -5 1 5 0 -8 2 0 6 3 > -14 7 -2 -1 -3 1 -5 -6 0 5 > 1 -1 0 -2 -5 2 -3 0 -3 -1 > -5 -12 -4 -4 -9 4 0 -2 -2 -8 > 2 5 7 -2 0 -6 110 -8 -8 -4 > 0 5 -7 -3 -5 -4 9 -2 -2 3 > -8 -2 -5 4 -3 217 0 -7 -7 -6 > 7 -10 -9 -3 3 -14 3 -5 5 -12 > 5 -8 -17 -5 286 -6 0 -3 -4 -2 > 1 -5 -5 -9 -6 -7 -3 -5 6 0 > 1 -1 -4 -2 2 -2 -2 -2 -5 2 > 12 3 -18 -8 6 -4 -3 6 2 -3 > -7 -3 4 -5 -23 9 6 6 -6 -11 > 9 -1 -10 50505 -1 2 6 -11 2 -2 > -4 -6 201 1 3 4 -9 6 0 1 > -4 0 -1 3 4 1 6 -7 -5 4 > -14 -3 -1 -8 5 6 -5 3 -7 -9 > -7 1 -2 5 -2 0 -2 -9 4 -3 > 98 -5 7 -7 3 0 -5 0 9 2 > -7 -5 -3 -12 -11 -11 6 -5 -7 -6 > 210 5 -3 -5 -4 -11 -6 0 -5 -9 > 3 0 -9 5 1 0 0 -7 -5 210 > 1 -6 -17 -8 0 1 -2 -8 1 -7 > 10 -8 -8 -9 4 -2 -4 -3 204 5 > -9 -15 3 -1 -5 0 -12 -1 0 1 > -1 -6 -5 -9 -1 4 -1 -1 0 1 > 4 -8 -13 1 0 -5 -6 0 -4 0 > 6 -2 -4 -8 -7 -12 -2 -2 -6 -8 > -5 0 -8 -7 -11 0 6 -1 -8 -3 > 2 6 -6 0 -10 285 -1 -2 -8 -6 > -6 -1 -5 -6 0 -5 -8 -5 1 -8 > -1 1 4 -3 -4 188 -3 -3 -10 5 > 6 0 -7 4 1 2 0 -2 -2 2 > -3 -1 -9 -12 201 -1 -7 -1 8 0 > 0 0 -5 0 7 -18 5 1 -2 15 > 5 -6 4 -10 272 0 -4 -3 2 -10 > -7 7 3 4 1 6 -9 -8 -12 -2 > -2 -2 -6 8 3 97 -1 -7 5 1 > -7 4 -6 -9 -7 -2 0 -6 8 -13 > -1 3 -9 -4 233 -2 0 0 -5 -5 > -2 0 0 5 -7 6 -14 4 -6 5 > 4 3 3 -3 103 -2 -6 -11 2 -2 > -3 -8 0 -1 1 0 -6 1 1 -10 > -1 0 -1 0 0 -1 -6 -4 -4 -3 > 3 0 -5 0 2 -2 6 0 -13 3 > 1 -16 -2 -12 206 -4 -6 -5 -3 2 > -8 -2 -9 -2 9 7 -1 1 3 -5 > 6 6 10 0 99 -2 -1 -2 0 -6 > -8 -9 0 3 0 -11 -6 1 -4 9 > -11 -11 2 -1 276 -7 2 4 -4 -3 > 4 2 -12 8 1 -4 0 -1 -1 -1 > 5 -8 0 6 232 -4 2 -2 -11 2 > -6 0 4 6 -7 8 -6 3 -3 -9 > 0 1 -7 2 -3 -5 -3 -2 -8 -4 > -14 -2 0 4 -4 -3 -4 9 3 -1 > -5 -8 1 0 210 0 -6 -4 2 2 > 0 -3 -4 0 4 -12 10 -2 -3 -1 > 3 7 -3 6 -9 190 4 6 -2 11 > -10 -2 -9 3 2 4 -4 -7 -9 -2 > -10 12 1 -7 3 -1 0 -1 -11 6 > 6 0 -8 1 4 2 -2 -5 0 0 > 5 -5 -3 -5 205 -1 -3 -1 0 -4 > -3 -7 3 0 -7 -5 -4 -3 7 1 > -14 -2 0 -14 2 0 7 11 -2 -7 > 6 -6 -3 -4 0 4 -3 -4 -3 -7 > -6 3 -4 0 4 -3 -6 3 4 -4 > -6 7 -11 1 -10 -10 -12 -4 -3 6 > -5 -6 5 212 -8 1 -4 3 -3 -8 > 0 -10 0 2 6 -3 -1 -13 1 6 > -6 5 -4 0 -7 -4 -5 -6 1 -2 > 1 -10 -12 -3 -8 9 -11 0 1 -3 > -1 1 186 2 -12 3 -4 0 0 -1 > -5 -4 1 -1 4 5 -10 0 -4 1 > -1 -6 270 0 -17 5 0 0 -4 -1 > 4 6 1 0 -6 6 5 -3 3 -2 > -6 -7 18 -16 0 9 4 3 -1 6 > 4 1 -5 7 -11 -1 -6 -2 6 -2 > -8 256 -5 -2 1 -1 -5 -3 -9 0 > -1 3 -2 -11 4 3 -7 -3 3 -1 > -5 -5 0 -4 -1 -3 -3 6 -3 3 > 3 -2 -11 -2 -3 11 -8 1 5 -7 > 5 -12 -3 8 -9 -5 7 5 -3 2 > -7 -3 -6 2 -2 -1 -2 -9 -8 99 > 6 -2 9 -1 -4 -2 0 -2 -7 -5 > 0 1 -4 -8 -1 -2 2 -8 2 205 > -3 -10 -1 -1 -2 -5 2 2 5 -2 > -5 -6 -4 6 6 -6 4 1 -5 0 > -7 3 1 0 -11 -7 -3 5 -5 5 > 1 -1 3 -5 -8 0 -1 0 183 -5 > 0 4 -1 -6 -11 -10 1 -18 3 -1 > -5 -9 -2 2 2 -2 0 99 -7 -8 > -1 -3 -5 -1 12 -3 -1 2 1 4 > 7 3 -14 2 -4 8 -9 -3 -8 -5 > 6 -6 5 -12 6 -1 -9 -4 -4 1 > -6 0 0 -2 -3 -5 -9 -2 -9 -3 > 3 -16 -2 -1 0 9 -4 5 -6 5 > > 0x1 > ddb{2}> machine ddbcpu 3 > Stopped at x86_ipi_db+0x12: leave > ddb{3}> call tsc_debug > -8336 -6457 -45527 0 -1 0 -2 4 0 5 > -9 -6 -4 -4 6 4 0 -3 -4 5 > 3 6 -12 -1 1 1 -3 6 -4 -2 > -2 2 4 -3 0 -1 3 0 1 3 > -3 3 -1 4 -5 -2 -2 -9 6 -9 > 0 1 -2 -6 8 -4 -2 -2 6 1 > -1 1 -6 -6 4 -5 -1 6 -1 -1 > 3 5 0 -6 5 -4 -2 -6 -3 -4 > -5 2 -3 -3 -5 -3 -5 -5720 0 5 > -1 -3 3 -2 4 -6 8 -16 -6 -3 > -2 4 8 -3 3 -1 2 -8 -3 -19 > -8 3 -7 -9 -6 -3 1 -3 -6 7 > 4 1 3 2 -4 7 -3 2 2 -4 > -10 -8 -14 -2 2 -3 3 -2 3 -3 > 5 5 -6 9 -3 -12 -6 1 -10 7 > -6 5 -4 1 6 3 2 2 -6 -1 > 6 -8 -5 7 3 -3 -4 -6 1 -5 > 4 -6 2 6 -6 3 -8 -5 -6 0 > -5 -2 -13 -8 3 0 -17 -7 -9 1 > 6 -12 3 6 3 -3 4 -1 -7 0 > 2 0 -7 -10 -6 3 1 2 -19 4 > 1 -18 1 -3 -6 -14 4 6 3 -4 > -7 -11 -1 -1 3 0 6 6 -8 -14 > 3 -2 6 -5 0 1 0 -7 0 4 > -3 -16 -2 -4 -12 -4 6 0 -8 -4 > -4 -4 -3 0 -6 -13 -10 -15 -6 2 > 0 -3 0 -8 4 -1 -1 5 -4 -1 > -7 2 1 1 3 -3 -1 -18 6 8 > -2 3 -6 0 -6 -2 2 -2 -7 1 > -6 -13 -4 -2 -1 -6 6 -5 -9 -14 > 4 5 -4 -2 -9 -2 -2 -13 1 -18 > -1 2 -5 6 -6 -7 -9 -6 1 6 > -13 -4 3 0 -8 -6 -6 -10 -2 -9 > 5 2 4 1 6 -5 -8 -6 2 -4 > -3 -5 -2 -6 -10 0 5 -2 8 -3 > 8 -11 -11 -7 -5 -13 -19 -5 -14 -3 > 3 2 1 3 6 -1 -9 -16 3 -7 > 1 -3 -5 0 -7 6 4 -2 -2 4 > 4 -6 -6 8 -6 -7 -5 -2 0 4 > -1 3 1 3 -6 -2 -4 -9 1 0 > -2 3 2 -16 4 -15 -11 -3 8 0 > -6 -3 -18 -7 -8 8 -8 6 -7 -4 > -8 -7 -9 0 -2 3 7 -2 1 -6 > 2 -6 8 -1 -12 -8 -4 3 -13 -2 > -11 1 -2 -7 -3 0 -16 -8 4 -9 > -15 -8 -9 8 5 7 -9 5 -10 10 > 1 6 -6 3 -6 -4 5 0 -3 -7 > -1 -4 -10 -2 0 -11 8 -8 -3 -11 > 4 -6 1 -8 -1 -6 3 -1 -12 -7 > 11 -1 0 -4 -13 0 -10 7 -2 0 > -6 4 0 -12 -9 6 -2 -5 -5 -7 > -1 -9 -5 3 3 -7 3 -16 -2 -10 > 0 -2 6 4 4 -6 -9 -3 -6 4 > -5 -1 7 -11 -21 -9 -3 -1 4 -13 > -7 0 -3 0 -10 -7 8 -9 7 6 > -9 -14 5 -9 -7 -8 11 -6 1 -3 > -9 7 5 0 -12 -3 -4 -18 0 4 > -1 8 -8 9 4 0 5 -10 -10 -8 > 1 8 -1 4 1 -3 -6 -6 -5 -1 > -12 -6 -8 -14 -10 2 -1 9 0 -9 > 0 -8 -6 -5 1 -14 -6 5 1 -7 > 3 -9 6 -4 3 0 -21 8 7 5 > 0 0 -2 2 1 -7 -11 1 -7 2 > -3 -2 9 1 3 -1 -8 0 -18 -7 > -3 6 1 1 -8 -5 -1 2 -4 -6 > -10 -5 -20 -18 5 -7 2 5 -3 -3 > -6 -3 -3 4 -7 -2 -4 2 -6 -11 > -4 -15 -6 -5 2 -1 -10 -4 -6 -3 > -1 0 -6 -10 5 -5 2 2 -8 6 > -1 5 -5 -9 12 0 -6 -17 2 -4 > 4 -11 -1 -8 0 -3 -11 -8 0 -6 > 2 -1 -4 -9 -12 3 6 -10 -2 -6 > -13 1 -10 1 -13 5 -4 3 -11 4 > -8 4 4 -17 6 -12 3 -13 0 -3 > -7 4 -11 -1 1 3 5 -8 -3 0 > 4 -8 -1 4 -13 2 -1 2 5 -6 > -6 4 -4 -5 1 -4 4 5 -2 -10 > -9 0 -14 -2 -7 1 -1 -14 -15 8 > -3 9 -3 -4 -8 0 2 5 -11 -13 > -5 -13 -3 -7 9 -3 -7 -6 -9 -7 > -8 -10 -1 6 2 2 3 -13 -6 -5 > 3 -13 2 -6 4 1 0 -9 4 -11 > -15 0 1 -12 -1 2 -11 2 -1 -13 > -13 -5 3 9 -11 -8 2 -12 -2 -5 > 0 -3 -2 1 -6 -2 -1 0 -3 2 > 0 -9 -4 1 -2 3 -6 0 -4 -6 > 2 1 -14 -4 -7 -23 -1 -4 -8 -8 > 2 -4 1 6 -10 5 -9 -6 6 -1 > 4 -2 -9 0 -5 -1 8 0 3 4 > -4 -7 -4 2 -15 -6 2 1 -6 -4 > -3 -3 3 -7 -2 -9 9 -2 -9 -4 > 3 -8 -10 -3 -4 1 -4 -10 -1 3 > -1 -15 5 0 2 -6 4 6 -2 0 > 2 5 3 -12 -5 -5 -2 -4 -4 5 > -8 -4 -6 -16 -1 4 -4 -1 -8 0 > 6 -10 5 0 1 -3 -9 8 0 -11 > -3 -13 -1 3 3 -6 -6 -2 3 5 > 4 -6 12 -17 1 -5 -5 -2 1 -3 > -7 5 -4 8 -5 -1 -5 8 -12 4 > -6 2 -5 -9 2 -2 5 3 -5 -8 > > 0x1 > ddb{3}> > ---- > > I seems that we can fix the problem by comparing TSC more times and > choosing the minimum value. > > The diff also includes a fix for the problem (use the minimum value of > 1000 samplings). With the diff, I tried "monotime" test program over > 100 times, it didn't find any clock going back. > > > dmesg > ---- > OpenBSD 6.8 (GENERIC.MP) #5: Mon Feb 22 04:36:10 MST 2021 > > r...@syspatch-68-amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP > real mem = 6425083904 (6127MB) > avail mem = 6215311360 (5927MB) > random: good seed from bootblocks > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xbfbb401f (98 entries) > bios0: vendor VMware, Inc. version "VMW71.00V.0.B64.1506250318" date > 06/25/2015 > bios0: VMware, Inc. VMware7,1 > acpi0 at bios0: ACPI 4.0 > acpi0: sleep states S0 S1 S4 S5 > acpi0: tables DSDT SRAT FACP APIC MCFG HPET WAET > acpi0: wakeup devices PCI0(S3) USB_(S1) P2P0(S3) S1F0(S3) S2F0(S3) S3F0(S3) > S4F0(S3) S5F0(S3) S6F0(S3) S7F0(S3) S8F0(S3) S9F0(S3) S10F(S3) S11F(S3) > S12F(S3) S13F(S3) [...] > acpitimer0 at acpi0: 3579545 Hz, 24 bits > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2397.42 MHz, 06-3f-02 > cpu0: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,HV,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT,MELTDOWN > cpu0: 256KB 64b/line 8-way L2 cache > cpu0: smt 0, core 0, package 0 > mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges > cpu0: apic clock running at 65MHz > cpu1 at mainbus0: apid 1 (application processor) > cpu1: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2397.29 MHz, 06-3f-02 > cpu1: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,HV,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT,MELTDOWN > cpu1: 256KB 64b/line 8-way L2 cache > cpu1: disabling user TSC (skew=-5310) > cpu1: smt 0, core 1, package 0 > cpu2 at mainbus0: apid 2 (application processor) > cpu2: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2397.28 MHz, 06-3f-02 > cpu2: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,HV,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT,MELTDOWN > cpu2: 256KB 64b/line 8-way L2 cache > cpu2: disabling user TSC (skew=-5335) > cpu2: smt 0, core 2, package 0 > cpu3 at mainbus0: apid 3 (application processor) > cpu3: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz, 2397.29 MHz, 06-3f-02 > cpu3: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,HV,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT,MELTDOWN > cpu3: 256KB 64b/line 8-way L2 cache > cpu3: disabling user TSC (skew=-7386) > cpu3: smt 0, core 3, package 0 > ioapic0 at mainbus0: apid 4 pa 0xfec00000, version 11, 24 pins, remapped > acpimcfg0 at acpi0 > acpimcfg0: addr 0xe0000000, bus 0-127 > acpihpet0 at acpi0: 14318179 Hz > acpiprt0 at acpi0: bus 0 (PCI0) > acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001 > acpicmos0 at acpi0 > "PNP0A05" at acpi0 not configured > acpiac0 at acpi0: AC unit online > acpicpu0 at acpi0: C1(@1 halt!) > acpicpu1 at acpi0: C1(@1 halt!) > acpicpu2 at acpi0: C1(@1 halt!) > acpicpu3 at acpi0: C1(@1 halt!) > cpu0: using Broadwell MDS workaround > pvbus0 at mainbus0: VMware > vmt0 at pvbus0 > pci0 at mainbus0 bus 0 > 0:16:0: rom address conflict 0xffffc000/0x4000 > pchb0 at pci0 dev 0 function 0 "Intel 82443BX AGP" rev 0x01 > ppb0 at pci0 dev 1 function 0 "Intel 82443BX AGP" rev 0x01 > pci1 at ppb0 bus 1 > pcib0 at pci0 dev 7 function 0 "Intel 82371AB PIIX4 ISA" rev 0x08 > pciide0 at pci0 dev 7 function 1 "Intel 82371AB IDE" rev 0x01: DMA, channel 0 > configured to compatibility, channel 1 configured to compatibility > pciide0: channel 0 disabled (no drives) > atapiscsi0 at pciide0 channel 1 drive 0 > scsibus1 at atapiscsi0: 2 targets > cd0 at scsibus1 targ 0 lun 0: <NECVMWar, VMware IDE CDR10, 1.00> removable > cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2 > piixpm0 at pci0 dev 7 function 3 "Intel 82371AB Power" rev 0x08: SMBus > disabled > "VMware VMCI" rev 0x10 at pci0 dev 7 function 7 not configured > "VMware SVGA II" rev 0x00 at pci0 dev 15 function 0 not configured > mpi0 at pci0 dev 16 function 0 "Symbios Logic 53c1030" rev 0x01: apic 4 int 17 > mpi0: 0, firmware 1.3.41.32 > scsibus2 at mpi0: 16 targets, initiator 7 > sd0 at scsibus2 targ 0 lun 0: <VMware, Virtual disk, 1.0> > sd0: 16384MB, 512 bytes/sector, 33554432 sectors > sd1 at scsibus2 targ 1 lun 0: <VMware, Virtual disk, 1.0> > sd1: 81920MB, 512 bytes/sector, 167772160 sectors > mpi0: target 0 Sync at 160MHz width 16bit offset 127 QAS 1 DT 1 IU 1 > mpi0: target 1 Sync at 160MHz width 16bit offset 127 QAS 1 DT 1 IU 1 > ppb1 at pci0 dev 17 function 0 "VMware PCI" rev 0x02 > pci2 at ppb1 bus 2 > ppb2 at pci0 dev 21 function 0 "VMware PCIE" rev 0x01: msi > pci3 at ppb2 bus 3 > vmx0 at pci3 dev 0 function 0 "VMware VMXNET3" rev 0x01: msix, 4 queues, > address 00:0c:29:7d:49:9c > ppb3 at pci0 dev 21 function 1 "VMware PCIE" rev 0x01: msi > pci4 at ppb3 bus 4 > ppb4 at pci0 dev 21 function 2 "VMware PCIE" rev 0x01: msi > pci5 at ppb4 bus 5 > ppb5 at pci0 dev 21 function 3 "VMware PCIE" rev 0x01: msi > pci6 at ppb5 bus 6 > ppb6 at pci0 dev 21 function 4 "VMware PCIE" rev 0x01: msi > pci7 at ppb6 bus 7 > ppb7 at pci0 dev 21 function 5 "VMware PCIE" rev 0x01: msi > pci8 at ppb7 bus 8 > ppb8 at pci0 dev 21 function 6 "VMware PCIE" rev 0x01: msi > pci9 at ppb8 bus 9 > ppb9 at pci0 dev 21 function 7 "VMware PCIE" rev 0x01: msi > pci10 at ppb9 bus 10 > ppb10 at pci0 dev 22 function 0 "VMware PCIE" rev 0x01: msi > pci11 at ppb10 bus 11 > ppb11 at pci0 dev 22 function 1 "VMware PCIE" rev 0x01: msi > pci12 at ppb11 bus 12 > ppb12 at pci0 dev 22 function 2 "VMware PCIE" rev 0x01: msi > pci13 at ppb12 bus 13 > ppb13 at pci0 dev 22 function 3 "VMware PCIE" rev 0x01: msi > pci14 at ppb13 bus 14 > ppb14 at pci0 dev 22 function 4 "VMware PCIE" rev 0x01: msi > pci15 at ppb14 bus 15 > ppb15 at pci0 dev 22 function 5 "VMware PCIE" rev 0x01: msi > pci16 at ppb15 bus 16 > ppb16 at pci0 dev 22 function 6 "VMware PCIE" rev 0x01: msi > pci17 at ppb16 bus 17 > ppb17 at pci0 dev 22 function 7 "VMware PCIE" rev 0x01: msi > pci18 at ppb17 bus 18 > ppb18 at pci0 dev 23 function 0 "VMware PCIE" rev 0x01: msi > pci19 at ppb18 bus 19 > ppb19 at pci0 dev 23 function 1 "VMware PCIE" rev 0x01: msi > pci20 at ppb19 bus 20 > ppb20 at pci0 dev 23 function 2 "VMware PCIE" rev 0x01: msi > pci21 at ppb20 bus 21 > ppb21 at pci0 dev 23 function 3 "VMware PCIE" rev 0x01: msi > pci22 at ppb21 bus 22 > ppb22 at pci0 dev 23 function 4 "VMware PCIE" rev 0x01: msi > pci23 at ppb22 bus 23 > ppb23 at pci0 dev 23 function 5 "VMware PCIE" rev 0x01: msi > pci24 at ppb23 bus 24 > ppb24 at pci0 dev 23 function 6 "VMware PCIE" rev 0x01: msi > pci25 at ppb24 bus 25 > ppb25 at pci0 dev 23 function 7 "VMware PCIE" rev 0x01: msi > pci26 at ppb25 bus 26 > ppb26 at pci0 dev 24 function 0 "VMware PCIE" rev 0x01: msi > pci27 at ppb26 bus 27 > ppb27 at pci0 dev 24 function 1 "VMware PCIE" rev 0x01: msi > pci28 at ppb27 bus 28 > ppb28 at pci0 dev 24 function 2 "VMware PCIE" rev 0x01: msi > pci29 at ppb28 bus 29 > ppb29 at pci0 dev 24 function 3 "VMware PCIE" rev 0x01: msi > pci30 at ppb29 bus 30 > ppb30 at pci0 dev 24 function 4 "VMware PCIE" rev 0x01: msi > pci31 at ppb30 bus 31 > ppb31 at pci0 dev 24 function 5 "VMware PCIE" rev 0x01: msi > pci32 at ppb31 bus 32 > ppb32 at pci0 dev 24 function 6 "VMware PCIE" rev 0x01: msi > pci33 at ppb32 bus 33 > ppb33 at pci0 dev 24 function 7 "VMware PCIE" rev 0x01: msi > pci34 at ppb33 bus 34 > isa0 at pcib0 > isadma0 at isa0 > fdc0 at isa0 port 0x3f0/6 irq 6 drq 2 > com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo > com0: console > com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo > pckbc0 at isa0 port 0x60/5 irq 1 irq 12 > pckbd0 at pckbc0 (kbd slot) > wskbd0 at pckbd0 mux 1 > pms0 at pckbc0 (aux slot) > wsmouse0 at pms0 mux 0 > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > efifb0 at mainbus0: 1152x864, 32bpp > wsdisplay0 at efifb0 mux 1 > wskbd0: connecting to wsdisplay0 > wsdisplay0: screen 0-5 added (std, vt100 emulation) > vscsi0 at root > scsibus3 at vscsi0: 256 targets > softraid0 at root > scsibus4 at softraid0: 256 targets > root on sd0a (a5bd0d220920df21.a) swap on sd0b dump on sd0b > ---- > > This happens on 2 ESXi hosts at least > > - 1 > - ESXi 6.0.0, 3029758 > - Xeon E5-2620 x 2 > - 2 > - ESXi 6.7.0 Update 3 (Build 14320388) > - Xeon Silver 4208 x 2 >
This broke the monotonic clock on my Ryzen 5 2500U. Note: userland TSC has never worked on this device. $ ./monotime 320678 Starting 351995 Starting 387215 Starting 505501 Starting 387215 Stopped 505501 Back 213.019672364 => 212.599096325 505501 Stopped 351995 Stopped 320678 Stopped OpenBSD 6.9-beta (GENERIC.MP) #10: Wed Mar 24 09:03:54 EDT 2021 jr...@drifter.i.zettaport.com:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 16762552320 (15986MB) avail mem = 16238886912 (15486MB) random: good seed from bootblocks mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 3.1 @ 0x986eb000 (62 entries) bios0: vendor LENOVO version "R0UET78W (1.58 )" date 11/17/2020 bios0: LENOVO 20KUCTO1WW acpi0 at bios0: ACPI 5.0 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP SSDT SSDT CRAT CDIT SSDT TPM2 UEFI MSDM BATB HPET APIC MCFG SBST WSMT VFCT IVRS FPDT SSDT SSDT SSDT BGRT UEFI SSDT acpi0: wakeup devices GPP0(S3) GPP1(S3) GPP2(S3) GPP3(S3) GPP4(S3) GPP5(S3) GPP6(S3) GP17(S3) XHC0(S3) XHC1(S3) GP18(S3) LID_(S3) SLPB(S3) acpitimer0 at acpi0: 3579545 Hz, 32 bits acpihpet0 at acpi0: 14318180 Hz acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx, 1996.57 MHz, 17-11-00 cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA,IBPB,XSAVEOPT,XSAVEC,XGETBV1,XSAVES cpu0: 64KB 64b/line 4-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache cpu0: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu0: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu0: smt 0, core 0, package 0 mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges cpu0: apic clock running at 24MHz cpu0: mwait min=64, max=64, C-substates=1.1, IBE cpu1 at mainbus0: apid 1 (application processor) cpu1: AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx, 1996.26 MHz, 17-11-00 cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA,IBPB,XSAVEOPT,XSAVEC,XGETBV1,XSAVES cpu1: 64KB 64b/line 4-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache cpu1: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu1: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu1: disabling user TSC (skew=1459148152) cpu1: smt 1, core 0, package 0 cpu2 at mainbus0: apid 2 (application processor) cpu2: AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx, 1996.26 MHz, 17-11-00 cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA,IBPB,XSAVEOPT,XSAVEC,XGETBV1,XSAVES cpu2: 64KB 64b/line 4-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache cpu2: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu2: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu2: disabling user TSC (skew=1459148192) cpu2: smt 0, core 1, package 0 cpu3 at mainbus0: apid 3 (application processor) cpu3: AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx, 1996.26 MHz, 17-11-00 cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA,IBPB,XSAVEOPT,XSAVEC,XGETBV1,XSAVES cpu3: 64KB 64b/line 4-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache cpu3: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu3: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu3: disabling user TSC (skew=1459148152) cpu3: smt 1, core 1, package 0 cpu4 at mainbus0: apid 4 (application processor) cpu4: AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx, 1996.26 MHz, 17-11-00 cpu4: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA,IBPB,XSAVEOPT,XSAVEC,XGETBV1,XSAVES cpu4: 64KB 64b/line 4-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache cpu4: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu4: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu4: disabling user TSC (skew=1459148182) cpu4: smt 0, core 2, package 0 cpu5 at mainbus0: apid 5 (application processor) cpu5: AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx, 1996.26 MHz, 17-11-00 cpu5: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA,IBPB,XSAVEOPT,XSAVEC,XGETBV1,XSAVES cpu5: 64KB 64b/line 4-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache cpu5: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu5: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu5: disabling user TSC (skew=1459148152) cpu5: smt 1, core 2, package 0 cpu6 at mainbus0: apid 6 (application processor) cpu6: AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx, 1996.26 MHz, 17-11-00 cpu6: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA,IBPB,XSAVEOPT,XSAVEC,XGETBV1,XSAVES cpu6: 64KB 64b/line 4-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache cpu6: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu6: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu6: disabling user TSC (skew=1459148192) cpu6: smt 0, core 3, package 0 cpu7 at mainbus0: apid 7 (application processor) cpu7: AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx, 1996.26 MHz, 17-11-00 cpu7: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA,IBPB,XSAVEOPT,XSAVEC,XGETBV1,XSAVES cpu7: 64KB 64b/line 4-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 8-way L2 cache cpu7: ITLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu7: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu7: disabling user TSC (skew=1459148152) cpu7: smt 1, core 3, package 0 ioapic0 at mainbus0: apid 32 pa 0xfec00000, version 21, 24 pins, can't remap ioapic1 at mainbus0: apid 33 pa 0xfec01000, version 21, 32 pins, can't remap acpimcfg0 at acpi0 acpimcfg0: addr 0xf8000000, bus 0-63 acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus 1 (GPP0) acpiprt2 at acpi0: bus 2 (GPP1) acpiprt3 at acpi0: bus 3 (GPP2) acpiprt4 at acpi0: bus -1 (GPP3) acpiprt5 at acpi0: bus -1 (GPP4) acpiprt6 at acpi0: bus 4 (GPP5) acpiprt7 at acpi0: bus -1 (GPP6) acpiprt8 at acpi0: bus 5 (GP17) acpiprt9 at acpi0: bus 6 (GP18) acpiec0 at acpi0 acpibtn0 at acpi0: PWRB acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000 acpicmos0 at acpi0 acpibat0 at acpi0: BAT0 model "01AV448" serial 2798 type LiP oem "Celxpert" acpiac0 at acpi0: AC unit online acpithinkpad0 at acpi0: version 2.0 "SMB0001" at acpi0 not configured acpibtn1 at acpi0: LID_ acpibtn2 at acpi0: SLPB "PNP0C14" at acpi0 not configured "PNP0C14" at acpi0 not configured "PNP0C14" at acpi0 not configured "STM7304" at acpi0 not configured "USBC000" at acpi0 not configured acpicpu0 at acpi0: C2(0@400 io@0x414), C1(0@1 mwait), PSS acpicpu1 at acpi0: C2(0@400 io@0x414), C1(0@1 mwait), PSS acpicpu2 at acpi0: C2(0@400 io@0x414), C1(0@1 mwait), PSS acpicpu3 at acpi0: C2(0@400 io@0x414), C1(0@1 mwait), PSS acpicpu4 at acpi0: C2(0@400 io@0x414), C1(0@1 mwait), PSS acpicpu5 at acpi0: C2(0@400 io@0x414), C1(0@1 mwait), PSS acpicpu6 at acpi0: C2(0@400 io@0x414), C1(0@1 mwait), PSS acpicpu7 at acpi0: C2(0@400 io@0x414), C1(0@1 mwait), PSS acpipwrres0 at acpi0: P0ST, resource for SATA acpipwrres1 at acpi0: P3ST, resource for SATA acpivideo0 at acpi0: VGA_ acpivout0 at acpivideo0: LCD_ cpu0: 1996 MHz: speeds: 2000 1700 1600 MHz pci0 at mainbus0 bus 0 ksmn0 at pci0 dev 0 function 0 "AMD 17h/1xh Root Complex" rev 0x00 "AMD 17h/1xh IOMMU" rev 0x00 at pci0 dev 0 function 2 not configured pchb0 at pci0 dev 1 function 0 "AMD 17h PCIE" rev 0x00 ppb0 at pci0 dev 1 function 1 "AMD 17h/1xh PCIE" rev 0x00: msi pci1 at ppb0 bus 1 ppb1 at pci0 dev 1 function 2 "AMD 17h/1xh PCIE" rev 0x00: msi pci2 at ppb1 bus 2 re0 at pci2 dev 0 function 0 "Realtek 8168" rev 0x10: RTL8168GU/8111GU (0x5080), msi, address e8:6a:64:f0:f8:14 rgephy0 at re0 phy 7: RTL8251 PHY, rev. 0 ppb2 at pci0 dev 1 function 3 "AMD 17h/1xh PCIE" rev 0x00: msi pci3 at ppb2 bus 3 sdhc0 at pci3 dev 0 function 0 "O2 Micro 0Z8621 SD/MMC" rev 0x01: apic 33 int 8 sdhc0: SDHC 4.0, 50 MHz base clock sdmmc0 at sdhc0: 4-bit, sd high-speed, mmc high-speed, ddr52, dma ppb3 at pci0 dev 1 function 6 "AMD 17h/1xh PCIE" rev 0x00: msi pci4 at ppb3 bus 4 iwm0 at pci4 dev 0 function 0 "Intel Dual Band Wireless-AC 8265" rev 0x78, msi pchb1 at pci0 dev 8 function 0 "AMD 17h PCIE" rev 0x00 ppb4 at pci0 dev 8 function 1 "AMD 17h/1xh PCIE" rev 0x00 pci5 at ppb4 bus 5 amdgpu0 at pci5 dev 0 function 0 "ATI Radeon Vega" rev 0xc4 drm0 at amdgpu0 amdgpu0: msi azalia0 at pci5 dev 0 function 1 "ATI Radeon Vega HD Audio" rev 0x00: msi azalia0: no supported codecs ccp0 at pci5 dev 0 function 2 "AMD 17h/1xh Crypto" rev 0x00 xhci0 at pci5 dev 0 function 3 "AMD 17h/1xh xHCI" rev 0x00: msi, xHCI 1.10 usb0 at xhci0: USB revision 3.0 uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1 xhci1 at pci5 dev 0 function 4 "AMD 17h/1xh xHCI" rev 0x00: msi, xHCI 1.10 usb1 at xhci1: USB revision 3.0 uhub1 at usb1 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1 azalia1 at pci5 dev 0 function 6 "AMD 17h/1xh HD Audio" rev 0x00: apic 33 int 30 azalia1: codecs: Conexant/0x5111 audio0 at azalia1 ppb5 at pci0 dev 8 function 2 "AMD 17h/1xh PCIE" rev 0x00 pci6 at ppb5 bus 6 ahci0 at pci6 dev 0 function 0 "AMD FCH AHCI" rev 0x61: msi, AHCI 1.3.1 ahci0: port 0: 6.0Gb/s scsibus1 at ahci0: 32 targets sd0 at scsibus1 targ 0 lun 0: <ATA, CT500MX500SSD1, M3CR> naa.500a0751e13ebe2f sd0: 476940MB, 512 bytes/sector, 976773168 sectors, thin piixpm0 at pci0 dev 20 function 0 "AMD FCH SMBus" rev 0x61: SMI iic0 at piixpm0 spdmem0 at iic0 addr 0x50: 8GB DDR4 SDRAM PC4-19200 SO-DIMM spdmem1 at iic0 addr 0x52: 8GB DDR4 SDRAM PC4-19200 SO-DIMM iic1 at piixpm0 pcib0 at pci0 dev 20 function 3 "AMD FCH LPC" rev 0x51 pchb2 at pci0 dev 24 function 0 "AMD 17h/1xh Data Fabric" rev 0x00 pchb3 at pci0 dev 24 function 1 "AMD 17h/1xh Data Fabric" rev 0x00 pchb4 at pci0 dev 24 function 2 "AMD 17h/1xh Data Fabric" rev 0x00 pchb5 at pci0 dev 24 function 3 "AMD 17h/1xh Data Fabric" rev 0x00 pchb6 at pci0 dev 24 function 4 "AMD 17h/1xh Data Fabric" rev 0x00 pchb7 at pci0 dev 24 function 5 "AMD 17h/1xh Data Fabric" rev 0x00 pchb8 at pci0 dev 24 function 6 "AMD 17h/1xh Data Fabric" rev 0x00 pchb9 at pci0 dev 24 function 7 "AMD 17h/1xh Data Fabric" rev 0x00 isa0 at pcib0 isadma0 at isa0 pckbc0 at isa0 port 0x60/5 irq 1 irq 12 pckbd0 at pckbc0 (kbd slot) wskbd0 at pckbd0: console keyboard pms0 at pckbc0 (aux slot) wsmouse0 at pms0 mux 0 wsmouse1 at pms0 mux 0 pms0: Synaptics clickpad, firmware 8.16, 0x1e2b1 0x940300 0x373740 0xf020a3 0x12e800 pcppi0 at isa0 port 0x61 spkr0 at pcppi0 vmm0 at mainbus0: SVM/RVI efifb at mainbus0 not configured uaudio0 at uhub0 port 3 configuration 1 interface 1 "Plantronics Plantronics Headset" rev 1.10/0.04 addr 2 uaudio0: class v1, full-speed, sync, channels: 2 play, 2 rec, 9 ctls audio1 at uaudio0 uhidev0 at uhub0 port 3 configuration 1 interface 3 "Plantronics Plantronics Headset" rev 1.10/0.04 addr 2 uhidev0: iclass 3/0 uhid0 at uhidev0: input=2, output=0, feature=0 uvideo0 at uhub1 port 2 configuration 1 interface 0 "Azurewave Integrated Camera" rev 2.01/17.11 addr 2 video0 at uvideo0 vscsi0 at root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at softraid0: 256 targets root on sd0a (3a85b6926424009b.a) swap on sd0b dump on sd0b iwm0: hw rev 0x230, fw ver 34.0.1, address a0:51:0b:ed:56:de amdgpu0: RAVEN 8 CU rev 0x01 amdgpu0: 1920x1080, 32bpp wsdisplay0 at amdgpu0 mux 1: console (std, vt100 emulation), using wskbd0 wsdisplay0: screen 1-5 added (std, vt100 emulation)