第 3 章 运行并解释硬件和固件延迟测试
您可以通过在 RHEL Real Time 内核中运行 hwlatdetect
程序,测试并验证潜在的硬件平台是否适合实时操作。
先决条件
-
确保已安装
RHEL-RT
(用于 Real Time)和rt-tests
软件包。 检查供应商文档,了解低延迟操作所需的调整步骤。
供应商文档提供了减少或删除将系统转换为系统管理模式(SMM)的任何系统管理中断(SMI)的说明。当系统位于 SMM 中时,它会运行固件而不是操作系统代码。这意味着,在 SMM 中过期的任何计时器等待系统转换到正常操作。这可能导致无法解释的延迟,因为 Linux 无法阻止 SMIs,我们实际占用 SMI 的唯一指示可在供应商相关的性能计数器寄存器中找到。
警告红帽强烈建议您不要完全禁用 SMI,因为它可能会导致出现灾难性硬件故障。
3.1. 运行硬件和固件延迟测试
您不需要在运行 hwlatdetect
程序时在系统中运行任何负载,因为测试会查找硬件架构或 BIOS/EFI 固件带来的延迟。hwlatdetect
的默认值每秒轮询 0.5 秒,并在连续调用之间报告大于 10微秒的值来获取时间。hwlatdetect
返回系统中可能 的最佳 最大延迟。
因此,如果您有一个应用程序需要最大延迟值小于 10us,hwlatdetect
将报告其中一个差距为 20us,则系统只能保证延迟 20us。
如果 hwlatdetect
显示系统无法满足应用程序的延迟要求,请尝试更改 BIOS 设置或与系统厂商合作来获取满足应用程序延迟要求的新固件。
先决条件
-
确保已安装
RHEL-RT
和rt-tests
软件包。
流程
运行
hwlatdetect
,指定测试持续时间(以秒为单位)。hwlat
通过轮询 clock-source 来查找硬件和固件导致的延迟,并寻找无法解释的差距。# hwlatdetect --duration=60s hwlatdetect: test duration 60 seconds detector: tracer parameters: Latency threshold: 10us Sample window: 1000000us Sample width: 500000us Non-sampling period: 500000us Output File: None Starting test test finished Max Latency: Below threshold Samples recorded: 0 Samples exceeding threshold: 0
其他资源
-
hwlatdetect
man page. - 解释硬件和固件延迟测试