基于事件的概要分析

基于事件的概要分析由任何一个基于软件的事件或处理器上发生的任何性能监视器事件触发。

与基于时间的概要分析相比,基于事件的概要分析的主要优点如下:
  • 当禁用中断时,例程地址可视。
  • 更改概要分析事件的能力
  • 改变采样频率的能力

通过基于事件的概要分析,在禁用中断时发生的记号将向正确的例程收费。 此外,还可以选择概要分析事件和采样频率。 概要分析事件确定中断的触发器,采样频率确定中断发生的频率。 在概要分析事件发生指定次数之后,将生成中断并记录执行指令。

缺省类型的概要分析事件是处理器周期。 以下是各种类型的基于软件的事件:
  • 仿真中断 (仿真)
  • 对齐中断数 (比对)
  • 指令段后备缓冲区未命中数 (ISLB炜彤)
  • 数据段后备缓冲区未命中数 (DSLB炜彤)
基于软件的事件的采样频率以毫秒为单位指定,受支持的范围为 1 到 500 毫秒。 缺省采样频率为 10 毫秒。
以下命令每 5 毫秒生成一次中断,并检索上次仿真中断的记录:
# tprof -E EMULATION -f 5 
以下命令每 100 毫秒生成一次中断,并记录 "采样指令地址寄存器" 或 SIAR 的内容:
# tprof -E -f 100 
以下是其他类型的性能监视器事件:
  • 已完成的指令
  • 高速缓存未命中数
要获取系统处理器上支持的所有性能监视器事件的列表,请使用 pmlist 命令。 所选的性能监视器事件必须放在组中,在该组中我们也可以找到“PM_INST_CMPL 性能监视器”事件。 这些事件的采样频率在事件出现次数中指定。 支持的范围是 10,000 到 MAXINT 出现次数。 缺省采样频率为 10,000 次。
以下命令在处理器完成 50,000 个指令后生成中断:
# tprof -E PM_INST_CMPL -f 50000

基于事件的概要分析使用 SIAR ,该 SIAR 包含接近执行指令的指令的地址。 例如,如果概要分析事件为 PM_FPU0_FIN(这意味着浮点单元 0 生成结果) ,那么 SIAR 可能不包含该浮点指令,但可能包含另一个靠近该浮点指令的指令。 这与基于性能监视器事件的概要分析更相关。 事实上,出于接近原因,在基于 POWER4 及更高版本的系统上,建议将 Performance Monitor 概要分析事件作为其中一个标记的事件。 标记的事件具有 PM_MRK 前缀。

概要分析事件,采样频率和工作负载的某些组合可能会导致中断以系统在中断处理程序中花费大部分时间的速度发生。 tprof 命令通过跟踪两个连续中断之间的已完成指令数来检测此情况。 当 tprof 命令检测到出现五次计数低于可接受的限制时,跟踪收集将停止。 仍会生成报告并显示错误消息。 缺省阈值为 1,000 个指令。