summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua M. Clulow <josh@sysmgr.org>2022-03-09 21:33:18 -0800
committerJoshua M. Clulow <josh@sysmgr.org>2022-03-09 21:35:21 -0800
commit236cb9a89d936b4b681853751c9af1adccc35ef9 (patch)
treef0d475797e10dac543e608e61c404d95f66a5b2a
parent41a4986b48d4a0e9ed138c952a9bad5124a924a6 (diff)
downloadillumos-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.c9
-rw-r--r--usr/src/uts/i86pc/os/tscc_pit.c5
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",