Linux 时钟源之 TSC:软硬件原理、使用场景、已知问题(2024)
原文中文,约8800字,阅读约需21分钟。
📝
内容提要
本文介绍了Linux时钟源TSC的软硬件知识,包括计算机组件的运行频率、时钟源、CPU频率提升、x86架构的寄存器、TSC的作用和挑战、TSC的改进、查看和监控TSC相关信息等。文章指出TSC只是一个计数器,记录CPU启动以来的cycles次数,不稳定性因素较多,不推荐用作时间度量。文章还提到了BIOS设置、BIOS SMI handler、SMI中断风暴和虚拟机TSC不稳等问题。
❓
Q&A
TSC在Linux系统中的作用是什么?
TSC用于记录CPU启动以来的周期数,常被用作高精度时钟,但不推荐作为时间度量。
为什么TSC不适合用作时间度量?
TSC的准确性受到多核处理器、超线程、频率变化等因素的影响,导致其不稳定。
如何查看和监控TSC相关信息?
可以使用turbostat工具查看TSC相关信息,执行命令即可获取CPU的TSC频率。
TSC的恒定速率技术有什么意义?
恒定速率TSC技术旨在提高TSC的稳定性,确保TSC以CPU的标称频率累积。
BIOS设置如何影响TSC的稳定性?
某些BIOS固件可能会修改TSC值,导致操作系统时序不同步,从而影响TSC的稳定性。
在虚拟机环境中使用TSC会遇到什么问题?
虚拟机环境中TSC的稳定性存在问题,可能导致时间计量不准确。
🏷️