mirror of
https://github.com/RGBCube/serenity
synced 2025-05-20 12:55:08 +00:00
![]() In case we want to rely more on TSC in time keeping in the future, idk This adds: - RDTSCP, for when the RDTSCP instruction is available - CONSTANT_TSC, for when the TSC has a constant frequency, invariant under things like the CPU boosting its frequency. - NONSTOP_TSC, for when the TSC doesn't pause when the CPU enters sleep states. AMD cpus and newer intel cpus set the INVSTC bit (bit 8 in edx of extended cpuid 0x8000000008), which implies both CONSTANT_TSC and NONSTOP_TSC. Some older intel processors have CONSTANT_TSC but not NONSTOP_TSC; this is set based on cpu model checks. There isn't a ton of documentation on this, so this follows Linux terminology and http://blog.tinola.com/?e=54 CONSTANT_TSC: |
||
---|---|---|
.. | ||
Boot | ||
CPU.cpp | ||
CPU.h | ||
Interrupts.h | ||
ISRStubs.h | ||
ProcessorInfo.cpp | ||
ProcessorInfo.h |