第 14 章 使用 RHEL for Real Time 中的 timerlat 测量调度延迟
rtla-timerlat 工具是 timerlat 追踪器的接口,找到实时线程的 wake-up 延迟源,并收集有助于调试操作系统计时器延迟的信息。
timerlat 追踪器为每个 CPU 创建一个具有实时优先级的内核线程,这些线程将定期计时器设置为 wake,并返回到 sleep。timerlat 追踪器生成输出,并在每次激活时打印以下两行:
-
timerlat追踪程序定期打印计时器中断请求(IRQ)处理程序中看到的计时器延迟。这是在线程激活前在hardirq上下文中看到的第一个输出。 -
第二个输出是线程的计时器延迟。
ACTIVATION ID字段显示关联线程执行的中断请求(IRQ)性能。
14.1. 配置 timerlat 追踪器来测量调度延迟 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以通过在追踪系统的 current_tracer 文件中添加 timerlat 来配置 timerlat 追踪器。current_tracer 文件通常挂载到 /sys/kernel/tracing 目录中。timerlat 追踪器测量中断请求(IRQ),并在线程延迟超过 100 微秒时保存用于分析的 trace 输出。
先决条件
- 您在系统上具有 root 权限。
流程
列出当前的 tracer:
# cat /sys/kernel/tracing/current_tracer nop没有操作(nop)是默认的 tracer。在追踪系统的
current_tracer文件中添加timerlat追踪器:# cd /sys/kernel/tracing/ # echo timerlat > current_tracer生成追踪输出:
# cat trace # tracer: timerlat
验证
输入以下命令检查
timerlat是否作为当前的 tracer 启用:# cat /sys/kernel/tracing/current_tracer timerlat