Improve the performance of the hpet timer in bhyve guests by making the

timer frequency a power of two.  This changes the frequency from 10 to
16.7 MHz (2 ^ 24 HZ).  Using a power of two avoids roundoff errors when
doing arithmetic in sbintime_t units.

Testing shows this can fix erratic ntpd behavior in guests using the
hpet timer (which is the default for multicore guests).

Reported by:	bsam@
This commit is contained in:
ian 2017-10-29 20:50:03 +00:00
parent ca08165f6d
commit ae3d035140

View File

@ -51,7 +51,7 @@ __FBSDID("$FreeBSD$");
static MALLOC_DEFINE(M_VHPET, "vhpet", "bhyve virtual hpet"); static MALLOC_DEFINE(M_VHPET, "vhpet", "bhyve virtual hpet");
#define HPET_FREQ 10000000 /* 10.0 Mhz */ #define HPET_FREQ 16777216 /* 16.7 (2^24) Mhz */
#define FS_PER_S 1000000000000000ul #define FS_PER_S 1000000000000000ul
/* Timer N Configuration and Capabilities Register */ /* Timer N Configuration and Capabilities Register */