clock/tsc: Run TSC MP synchronization test on APs too.
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 30 May 2015 08:47:56 +0000 (16:47 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 1 Jun 2015 09:21:15 +0000 (17:21 +0800)
commit00ec69c72918b119397bee1830133ef9185120be
treead4fa35be92bbdbc8a5ca4775e123adf310b6dc2
parentced589cb14e9311db27af490f5b68b155ca5ec4c
clock/tsc: Run TSC MP synchronization test on APs too.

TSC MP synchronization needs BIOS and hardware coordination.  It is
known that buggy BIOS could make TSC not MP synchronized if the system
has multiple CPU packages.  Testing TSC MP synchronization only on BSP
is not enough to discover certain types of TSC MP unsynchronization,
e.g. APs TSC is ahead of BSP's TSC by great amount.  Thus APs also need
to run TSC MP synchronization test to make sure that TSC is really MP
synchronized.  And we are now running at least 50000 TSC MP
synchronization tests on each CPU.

And use lfence to prevent rdtsc from reordering during TSC MP
synchronization test, since we only test TSC MP synchronization on
Intel CPUs currently (mfence will be needed for AMD CPUs).
sys/platform/pc64/isa/clock.c