-a, --auto us

设置自动追踪模式。此模式在调试系统时设置一些常用选项。它等同于使用 -T us -s us -t。默认情况下,timerlat 追踪器为 timerlat 线程使用 FIFO:95,因此等同于 -P f:95

-p, --period us

设置 timerlat 追踪器的周期(以微秒为单位)。

-i, --irq us

如果 IRQ 延迟高于给定参数(以微秒为单位),则停止追踪。

-T, --thread us

如果 线程 延迟高于给定参数(以微秒为单位),则停止追踪。

-s, --stack us

如果 线程 延迟高于给定参数(以微秒为单位),则在 IRQ 处保存堆栈追踪。

-t, --trace [file]

将停止的追踪保存到 [文件|timerlat_trace.txt]。

--dma-latency us

将 /dev/cpu_dma_latency 设置为 us,旨在限制退出空闲状态的延迟。cyclictest 默认将此值设置为 0,使用 --dma-latency 0 可获得类似结果。

--deepest-idle-state n

对于正在运行 timerlat 线程的 CPU,禁用高于 n 的空闲状态,以减少退出空闲状态的延迟。如果 n 为 -1,则所有空闲状态都被禁用。退出 timerlat 后,空闲状态设置将恢复到运行 timerlat 之前的原始状态。

需要使用 libcpupower 构建 rtla。

-k, --kernel-threads

使用 timerlat 内核空间线程,与 -u 相反。

-u, --user-threads

将 timerlat 设置为在没有工作负载的情况下运行,然后调度用户空间工作负载以在 timerlat_fd 上等待。一旦工作负载唤醒,它会再次进入睡眠状态,从而将内核到用户和用户到内核的测量添加到追踪器输出中。除非用户指定 -k,否则将使用 --user-threads

-U, --user-load

将 timerlat 设置为无工作负载运行,等待用户调度一个每个 CPU 的任务,该任务在 tracing/osnoise/per_cpu/cpu$ID/timerlat_fd 上等待新的周期。有关用户负载代码的示例,请参见 linux/tools/rtla/sample/timerlat_load.py。