SMI当然可以在正常运行期间发生。我的家用台式机每隔一半有一个由芯片组驱动的SMI,它在芯片组中启用。我还看到有些服务器由于BIOS驱动的CPU频率缩放方案而每秒两次拥有它们。但是,某些系统可能会长时间运行而不会发生SMI,因此它确实取决于。
问题1:hwlatdetect是检测系统上发生的SMI延迟的一种方法。BIOSBITS是另一种选项,它是可引导CD,可以识别是否正在发生SMI。您还可以通过创建一个内核模块来编写自己的测试,该内核模块循环旋转并占用时间戳(使用RDTSC)。如果您看到两个时间戳读数之间有很长的间隔,则可以查询CPU
MSR 0x34,以查看SMI计数器是否增加,这表明发生了SMI。
如果要生成SMI,则可以使内核模块对端口0xb2执行OUT
CPU指令,例如,将值0写入该端口。(您也可以通过在写入端口0xB2之前和之后收集时间戳来为该SMI计时)。
问题2,SMI在 *** 作系统下的一层运行,因此您选择的 *** 作系统不会产生任何影响。
问题3:BIOSBITS建议将SMI延迟保持在150微秒以下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)