-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。