第 7 章 运行并解释硬件和固件延迟测试
使用 hwlatdetect
程序,您可以测试并验证潜在的硬件平台是否适合使用实时操作。
先决条件
-
确保安装了
RHEL-RT
(RHEL for Real Time)和realtime-tests
软件包。 有关低延迟操作所需的任何调整步骤,请查看厂商文档。
供应商文档可以提供减少或删除任何将系统转换为系统管理模式(SMM)的系统管理中断(SMI)的说明。虽然系统处于 SMM,但它运行固件而不是操作系统代码。这意味着,在 SMM 等待期间过期的任何计时器,直到系统转换为正常操作为止。这可能导致不解释的延迟,因为 Linux 无法阻止 SMI,并且唯一表示我们实际在特定于供应商的性能计数器寄存器中可以找到 SMI。
警告红帽强烈建议您不要完全禁用 SMI,因为它可能会导致出现灾难性硬件故障。
7.1. 运行硬件和固件延迟测试
在运行 hwlatdetect
程序时,不需要在系统中运行任何负载,因为测试会查找硬件架构或 BIOS 或 EFI 固件带来的延迟。hwlatdetect
的默认值是每秒轮询 0.5 秒,并报告连续调用之间超过 10 微秒的差距,以获取时间。hwlatdetect
返回 系统上可能的最大延迟。因此,如果您有一个应用程序需要最大延迟值小于 10us,hwlatdetect
会报告其中一个差距为 20us,则系统只能保证延迟 20us。
如果 hwlatdetect
显示系统无法满足应用程序的延迟要求,请尝试更改 BIOS 设置或使用系统供应商获得满足应用程序延迟要求的新固件。
流程
运行
hwlatdetect
,以秒为单位指定测试持续时间。hwlatdetect
通过轮询时钟源并查找无法解释的差距来查找硬件和固件延迟。hwlatdetect --duration=60s
# 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
Copy to Clipboard Copied!