rtla-osnoise-hist

显示 osnoise 跟踪器采样的直方图

手册章节:

1

概要

rtla osnoise hist [选项]

描述

rtla osnoise 工具是 osnoise 跟踪器的接口。osnoise 跟踪器为每个 CPU 分派一个内核线程。这些线程在启用抢占、软中断和 IRQ 的情况下循环读取时间,从而允许在执行过程中产生所有操作系统的噪声源。osnoise 的跟踪器线程记录每次时间读取之间的增量,以及所有干扰源的干扰计数器。在每个周期结束时,osnoise 跟踪器会显示结果摘要。

rtla osnoise hist 工具将所有 osnoise:sample_threshold 的出现收集到直方图中,并以用户友好的方式显示结果。该工具还允许对 osnoise 跟踪器进行许多配置,并收集跟踪器输出。

选项

-a, --auto us

设置自动跟踪模式。此模式在调试系统时设置一些常用选项。它等效于使用 -s us -T 1 -t

-p, --period us

设置 osnoise 跟踪器的周期,单位为微秒。

-r, --runtime us

设置 osnoise 跟踪器的运行时间,单位为微秒。

-s, --stop us

如果单个样本高于以微秒为单位的参数,则停止跟踪。如果设置了 -T,它也会将跟踪保存到输出。

-S, --stop-total us

如果总样本高于以微秒为单位的参数,则停止跟踪。如果设置了 -T,它也会将跟踪保存到输出。

-T, --threshold us

指定两次时间读取之间的最小增量,以将其视为噪声。默认阈值为 5 us

-t, --trace [文件]

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

-b, --bucket-size N

设置直方图桶大小(默认值 1)。

-E, --entries N

设置直方图的条目数(默认值 256)。

--no-header

不打印标题。

--no-summary

不打印摘要。

--no-index

不打印索引。

--with-zeros

仅打印零条目。

-c, --cpus cpu-list

设置 osnoise 跟踪器以在 cpu-list 中运行示例线程。

-H, --house-keeping cpu-list

仅在给定的 cpu-list 上运行 rtla 控制线程。

-d, --duration time[s|m|h|d]

设置会话的持续时间。

-D, --debug

打印调试信息。

-e, --event sys:event

在跟踪(-t)会话中启用一个事件。该参数可以是特定的事件,例如,-e sched:sched_switch,或者系统组的所有事件,例如,-e sched。允许多个 -e。仅当设置了 -t-a 时才处于活动状态。

--filter <过滤器>

使用 <过滤器> 过滤之前的 -e sys:event 事件。有关事件过滤的更多信息,请参阅 https://linuxkernel.org.cn/doc/html/latest/trace/events.html#event-filtering

--trigger <触发器>

为之前的 -e sys:event 启用跟踪事件触发器。如果激活了 hist: 触发器,则输出直方图将自动保存到名为 system_event_hist.txt 的文件中。例如,命令

rtla <命令> <模式> -t -e osnoise:irq_noise --trigger=”hist:key=desc,duration/1000:sort=desc,duration/1000:vals=hitcount”

将自动将与 osnoise:irq_noise 事件关联的直方图的内容保存到 osnoise_irq_noise_hist.txt 中。

有关事件触发器的更多信息,请参阅 https://linuxkernel.org.cn/doc/html/latest/trace/events.html#event-triggers

-P, --priority o:prio|r:prio|f:prio|d:runtime:period

为 osnoise 跟踪器线程设置调度参数,设置优先级的格式为

  • o:prio - 使用 SCHED_OTHER 和 prio

  • r:prio - 使用 SCHED_RR 和 prio

  • f:prio - 使用 SCHED_FIFO 和 prio

  • d:runtime[us|ms|s]:period[us|ms|s] - 使用 SCHED_DEADLINE,其中 runtimeperiod 以纳秒为单位。

-C, --cgroup[=cgroup]

为跟踪器线程设置一个 cgroup。如果传递的 -C 选项没有参数,则跟踪器的线程将继承 rtlacgroup。否则,线程将被放置在传递给选项的 cgroup 上。

--warm-up s

在启动工作负载后,让它运行 s 秒,然后再开始收集数据,从而允许系统预热。在预热期间生成的统计数据将被丢弃。

--trace-buffer-size kB

设置每个 CPU 的跟踪缓冲区大小,单位为 kB,用于跟踪输出。

-h, --help

打印帮助菜单。

示例

在下面的示例中,osnoise 跟踪器线程设置为以实时优先级 FIFO:1 在 CPU 0-11 上运行,每个周期运行 900 毫秒(默认值为 1 秒)。减少运行时间的原因是为了避免使 rtla 工具饥饿。该工具还设置为运行 一分钟。输出直方图设置为将输出分组到 10us 的桶和 25 个条目中

[root@f34 ~/]# rtla osnoise hist -P F:1 -c 0-11 -r 900000 -d 1M -b 10 -E 25
# RTLA osnoise histogram
# Time unit is microseconds (us)
# Duration:   0 00:01:00
Index   CPU-000   CPU-001   CPU-002   CPU-003   CPU-004   CPU-005   CPU-006   CPU-007   CPU-008   CPU-009   CPU-010   CPU-011
0         42982     46287     51779     53740     52024     44817     49898     36500     50408     50128     49523     52377
10        12224      8356      2912       878      2667     10155      4573     18894      4214      4836      5708      2413
20            8         5        12         2        13        24        20        41        29        53        39        39
30            1         1         0         0        10         3         6        19        15        31        30        38
40            0         0         0         0         0         4         2         7         2         3         8        11
50            0         0         0         0         0         0         0         0         0         1         1         2
over:         0         0         0         0         0         0         0         0         0         0         0         0
count:    55215     54649     54703     54620     54714     55003     54499     55461     54668     55052     55309     54880
min:          0         0         0         0         0         0         0         0         0         0         0         0
avg:          0         0         0         0         0         0         0         0         0         0         0         0
max:         30        30        20        20        30        40        40        40        40        50        50        50

另请参阅

rtla-osnoise(1), rtla-osnoise-top(1)

osnoise 跟踪器文档:<https://linuxkernel.org.cn/doc/html/latest/trace/osnoise-tracer.html>

作者

由 Daniel Bristot de Oliveira <bristot@kernel.org> 编写

报告错误

向 <linux-kernel@vger.kernel.org> 和 <linux-trace-devel@vger.kernel.org> 报告错误

许可证

rtla 是在 GNU GPLv2 下许可的自由软件

复制

版权所有 (C) 2021 Red Hat, Inc. 根据 GNU 公共许可证 (GPL) 的条款授予对此软件的免费使用权。