diff options
author | Joshua M. Clulow <josh@sysmgr.org> | 2022-03-09 21:33:18 -0800 |
---|---|---|
committer | Joshua M. Clulow <josh@sysmgr.org> | 2022-03-09 21:35:21 -0800 |
commit | 236cb9a89d936b4b681853751c9af1adccc35ef9 (patch) | |
tree | f0d475797e10dac543e608e61c404d95f66a5b2a | |
parent | 41a4986b48d4a0e9ed138c952a9bad5124a924a6 (diff) | |
download | illumos-gate-236cb9a89d936b4b681853751c9af1adccc35ef9.tar.gz |
14554 TSC calibration is the PITs
Reviewed by: Jason King <jason.brian.king@gmail.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Approved by: Dan McDonald <danmcd@joyent.com>
-rw-r--r-- | usr/src/uts/i86pc/os/tscc_hpet.c | 9 | ||||
-rw-r--r-- | usr/src/uts/i86pc/os/tscc_pit.c | 5 |
2 files changed, 11 insertions, 3 deletions
diff --git a/usr/src/uts/i86pc/os/tscc_hpet.c b/usr/src/uts/i86pc/os/tscc_hpet.c index dc18bb8a90..3987d64001 100644 --- a/usr/src/uts/i86pc/os/tscc_hpet.c +++ b/usr/src/uts/i86pc/os/tscc_hpet.c @@ -98,9 +98,16 @@ tsc_calibrate_hpet(uint64_t *freqp) return (B_TRUE); } +/* + * Reports from the field suggest that HPET calibration is currently producing + * a substantially greater error than PIT calibration on a wide variety of + * systems. We are placing it last in the preference order until that can be + * resolved. HPET calibration cannot be disabled completely, as some systems + * no longer emulate the PIT at all. + */ static tsc_calibrate_t tsc_calibration_hpet = { .tscc_source = "HPET", - .tscc_preference = 50, + .tscc_preference = 1, .tscc_calibrate = tsc_calibrate_hpet, }; TSC_CALIBRATION_SOURCE(tsc_calibration_hpet); diff --git a/usr/src/uts/i86pc/os/tscc_pit.c b/usr/src/uts/i86pc/os/tscc_pit.c index 80663669d9..5dbcf8540a 100644 --- a/usr/src/uts/i86pc/os/tscc_pit.c +++ b/usr/src/uts/i86pc/os/tscc_pit.c @@ -157,8 +157,9 @@ tsc_calibrate_pit(uint64_t *freqp) } /* - * Typically any source besides the PIT is going to provide better - * results, so a low preference is assigned to the PIT so it is tried last. + * Typically a calibration source that allows the hardware or the hypervisor to + * simply declare a specific frequency, rather than requiring calibration at + * runtime, is going to provide better results than the using PIT. */ static tsc_calibrate_t tsc_calibration_pit = { .tscc_source = "PIT", |