haiku/headers
Augustin Cavalier bb2808d615 bootloader: Implement TSC calibration via hypervisor CPUID leaf.
While debugging some problems on the HaikuPorts build VMs, mmlr
noticed their clocks had an alarming amount of drift. This prompted
an investigation into TSC calibration mechanisms, and the discovery
that there is a VM-specific one which we did not implement.

This mechanism is more accurate than counting cycles on VMs where
cycles can be "stolen" (the probable cause of the aforementioned
clock drift.)

Tested in VMware (works out of the box) and on QEMU/KVM
(may need TSC frequency specified or a host with invariant TSC.)

Change-Id: I4ccfdb2e4e2621404ec9026e7106c02bf96faf18
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7063
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-10-25 00:53:55 +00:00
..
build elf: add PT_RISCV_ATTRIBUTES program header 2023-09-25 15:20:13 +00:00
compatibility headers/compatibility/bsd: Update headers to remove BSD advertising clause. 2023-09-21 18:38:10 -04:00
config riscv: cleanup architecture macro checks 2021-09-01 18:04:59 +00:00
cpp userlandfs: use std::bitset for FSCapabilities 2023-07-10 06:27:18 +00:00
glibc Make public glibc header printf.h usable. 2013-07-17 18:07:56 +02:00
libs Icon-O-Matic: Add perspective transformations 2023-08-22 09:44:49 +00:00
os elf: add PT_RISCV_ATTRIBUTES program header 2023-09-25 15:20:13 +00:00
posix headers: Define static_assert for C11 2023-09-04 05:58:31 +00:00
private bootloader: Implement TSC calibration via hypervisor CPUID leaf. 2023-10-25 00:53:55 +00:00
tools cppunit: Enable CPPUNIT_HAVE_SSTREAM for the non-legacy GCC. 2022-03-29 19:09:38 -04:00