• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Scheduling analysis 抓取和展示说明
2
3抓取和展示 CPU 调度分析,线程调度分析相关数据。
4
5## Scheduling analysis 的抓取
6
7### Scheduling analysis 抓取界面配置说明
8
9打开 Scheduling analysis 开关抓取调度分析数据。
10![GitHub Logo](../../figures/Schedulinganalysis/scheduset.jpg)
11
12### Scheduling analysis 文件的抓取
13
14点击 Record setting,在 output file path 输入文件名 hiprofiler_dataScheduling.htrace,拖动滚动条设置 buffer size 大小是 64M,抓取时长是 50s。
15![GitHub Logo](../../figures/Schedulinganalysis/schedusetting.jpg)
16点击 Trace command,就会根据上面的配置生成抓取命令,点击 Record 抓取,抓取过程中会显示抓取时长。
17![GitHub Logo](../../figures/Schedulinganalysis/scheduexcuting.jpg)
18
19## Scheduling analysis 功能介绍
20
21将抓取的文件导入到 smartperf 工具查看。
22
23### CPU 频点分析
24
25点击下拉列表框选择 CPU Frequency,可以看到各核 CPU 的各频点持续时长的占比图,以颜色区分各频点。
26![GitHub Logo](../../figures/Schedulinganalysis/CPUFrequencychart.jpg)
27点击 CPU Frequency 饼图,可以跳转到详细信息界面,用饼图和表格来展示某个 CPU 下各频点持续时长的的相关数据。
28![GitHub Logo](../../figures/Schedulinganalysis/CPUFrequencydetailinfo.jpg)
29
30-     No:编号。
31-     frequency:频率。
32-     min:最小时长。
33-     max:最大时长。
34-     average:平均时长。
35-     duration:运行总时长。
36  点击详细页的 CPU Frequency 饼图,可以跳转某个 CPU 下某个频点的运行的线程信息。
37  ![GitHub Logo](../../figures/Schedulinganalysis/CPUFrequencythreaddetail.jpg)
38-     No:编号。
39-     t_name:线程名。
40-     tid:线程id。
41-     p_name:进程名。
42-     p_pid:进程id。
43-     duration:运行总时长。
44
45### CPU Idle 分析
46
47点击下拉列表框选择 CPU Idle,可以看到各 CPU 的 Idle 的时长占比饼图,以颜色区分各 Idle。
48![GitHub Logo](../../figures/Schedulinganalysis/CPUidlechart.jpg)
49点击 CPU Idle 饼图,可以跳转到某 CPU 的 idle 分析的详细数据,以饼图和表格的形式展示。
50![GitHub Logo](../../figures/Schedulinganalysis/CPUidledetailinfo.jpg)
51
52-     No:编号。
53-     idle:idle值。
54-     min:最小时长。
55-     max:最大时长。
56-     average:平均时长。
57-     duration:运行总时长。
58
59### CPU Irq 分析
60
61点击下拉列表框选择 CPU Irq,可以看到各 CPU 的 Irq 的时长占比饼图,以颜色区分。
62![GitHub Logo](../../figures/Schedulinganalysis/CPUirqchart.jpg)
63点击 CPU Irq 饼图,可以跳转到某 CPU 的 Irq 分析的详细数据,以饼图和表格的形式展示。
64![GitHub Logo](../../figures/Schedulinganalysis/CPUirqdetailinfo.jpg)
65
66-     No:编号。
67-     block:irq的类型。
68-     name:irp名称。
69-     min:最小时长。
70-     max:最大时长。
71-     average:平均时长。
72-     duration:运行总时长。
73
74### CPU 占用率显示
75
76以表格显示各 CPU 的占用率。
77![GitHub Logo](../../figures/Schedulinganalysis/CPUusagechart.jpg)
78
79### Top20 线程大中小核占用率
80
81选择 Thread Analysis 标签页,各个 CPU 通过勾选 big 或者 middle 或者 small 来设置 CPU 的分类。
82![GitHub Logo](../../figures/Schedulinganalysis/CPUsetting.jpg)
83各 CPU 勾选好大中小核,点击 Upload 可以跳转到各个线程 CPU 占用率情况的展示页面。
84![GitHub Logo](../../figures/Schedulinganalysis/CPUdetailsetting.jpg)
85如上图所示:
86
87-     三色柱状图:各个线程CPU的占用率情况,其中以颜色区分占用的大中小核的占用率情况,并以表格的形式展示各个线程的基本信息和大中小核占用率。
88-     单色柱状图:分别统计线程在某一个类别(大、中、小)的CPU的占用率,并显示出线程的基本信息和占用率。
89  表格的字段说明:
90-     tid:线程号。
91-     t_name:线程名。
92-     pid:进程号。
93-     p_name:进程名。
94-     big core:大核占用时长。
95-     middle core:中核占用时长。
96-     small core:小核占用时长。
97-     cpu..(us):运行总时长(..代表cpu号)。
98
99### 单个线程频点分布
100
101点击单个线程频点分布的标签,通过在 Thread Search 选择线程,来展示单个线程的频点分布情况。
102![GitHub Logo](../../figures/Schedulinganalysis/CPUfrequencybythread.jpg)
103
104-     NO:编号。
105-     cpu:cpu编号。
106-     frequency:频点。
107-     duration:运行时长。
108-     %:频点占用率。
109
110### Top20 单次运行超长线程
111
112通过点击 Top20 单次运行超长线程标签,显示线程的单次运行时长来统计出单次运行时长最大的 20 个线程。
113![GitHub Logo](../../figures/Schedulinganalysis/Top20Threadduration.jpg)
114
115-     NO:编号。
116-     tid:线程号。
117-     t_name:线程名。
118-     pid:进程号。
119-     p_name:进程名。
120-     max duration:最大运行时长。
121-     timestamp:时间戳信息。
122
123### Top20 进程线程数
124
125通过点击 Top20 进程线程数标签,显示线程数量最多的 20 个进程,以饼图和表格方式显示。
126![GitHub Logo](../../figures/Schedulinganalysis/Top20Threadnum.jpg)
127
128-     NO:编号。
129-     pid:进程号。
130-     p_name:进程名。
131-     thread count:线程数量。
132
133### Top20 切换次数线程
134
135通过点击 Top20 切换次数线程标签,显示切换次数最多的 20 个进程,以饼图和表格方式显示。
136![GitHub Logo](../../figures/Schedulinganalysis/Top20swtichcount.jpg)
137
138-     NO:编号。
139-     tid:线程号。
140-     t_name:线程名。
141-     pid:进程号。
142-     p_name:进程名。
143-     sched_switch count:切换次数。
144