调度统计
功能说明
用于统计CPU的一些调度信息,包括idle任务启动时间、idle任务运行时长、调度切次数等。
使用方法
- 通过make menuconfig开启该调度统计功能,即配置LOSCFG_DEBUG_SCHED_STATISTICS=y,该功能默认关闭,菜单路径为:Debug ---> Enable a Debug Version ---> Enable Debug LiteOS Kernel Resource ---> Enable Scheduler Statistics Debugging。
- 将以下函数注册为Shell命令。Shell命令注册方法详见新增命令开发流程。
OsShellStatisticsStart---调度统计功能开启函数。
OsShellStatisticsStop---调度统计功能关闭函数。关闭后,会自动调用OsStatisticsShow输出调度统计信息。
OsShellCmdDumpSched---显示CPU调度信息的函数。
- 调度信息查看。
在Shell窗口中调用注册的命令。
注意事项
先执行OsShellStatisticsStart对应的Shell命令,开启调度统计功能后,再查看调度信息。
输出说明
图中的mpstop是OsShellStatisticsStop注册的Shell命令,仅用于举例,实际上系统中并不存在该命令。图中各输出项说明如下表所示:
Passed Time |
调度功能运行时长 |
CPU |
CPU名称 |
Idle(%) |
idle任务运行时长百分比 |
ContexSwitch |
任务调度切换次数 |
HwiNum |
中断触发次数 |
Avg Pri |
切入任务不为idle任务的任务优先级平均值 |
HiTask(%) |
高优先级任务运行时长所占百分比,定义优先级小于16为高优先级 |
HiTask SwiNum |
切入新任务为高优先级的切换次数,定义优先级小于16为高优先级 |
HiTask P(ms) |
高优先级任务运行的平均时长,定义优先级小于16为高优先级 |
MP Hwi |
核间中断触发次数,仅用于多核 |
图中的mpstat是OsShellCmdDumpSched注册的Shell命令,仅用于举例,实际上系统中并不存在该命令。图中各输出项说明如下表所示:
Task |
任务名称 |
TID |
任务ID |
Total Time |
所有CPU的任务运行时长 |
Total CST |
所有CPU任务上下文切换次数 |
CPU |
CPU名称 |
Time |
单CPU的任务运行时长 |
CST |
单CPU的任务上下文切换次数 |