|
STATIC UINT64 | OsGetCpuCycle (VOID) |
|
LITE_OS_SEC_TEXT_INIT VOID | OsCpupGuard (VOID) |
|
LITE_OS_SEC_TEXT_INIT UINT32 | OsCpupGuardCreator (VOID) |
| 创建cpu使用统计定时器 更多...
|
|
| LOS_MODULE_INIT (OsCpupGuardCreator, LOS_INIT_LEVEL_KMOD_TASK) |
|
LITE_OS_SEC_TEXT_INIT UINT32 | OsCpupInit (VOID) |
|
| LOS_MODULE_INIT (OsCpupInit, LOS_INIT_LEVEL_KMOD_EXTENDED) |
|
STATIC VOID | OsResetCpup (OsCpupBase *cpup, UINT64 cycle) |
|
LITE_OS_SEC_TEXT_INIT VOID | LOS_CpupReset (VOID) |
| Reset the data of CPU usage. 更多...
|
|
VOID | OsCpupCycleEndStart (UINT32 runTaskID, UINT32 newTaskID) |
|
LITE_OS_SEC_TEXT_MINOR STATIC VOID | OsCpupGetPos (UINT16 mode, UINT16 *curPosPointer, UINT16 *prePosPointer) |
|
STATIC INLINE UINT32 | OsCalculateCpupUsage (const OsCpupBase *cpup, UINT16 pos, UINT16 prePos, UINT64 allCycle) |
|
STATIC UINT32 | OsHistorySysCpuUsageUnsafe (UINT16 mode) |
|
LITE_OS_SEC_TEXT_MINOR UINT32 | LOS_HistorySysCpuUsage (UINT16 mode) |
| 获取系统历史CPU占用率 指周期时间内系统的CPU占用率,用于表示系统一段时间内的闲忙程度,也表示CPU的负载情况。系统CPU 占用率的有效表示范围为0~100,其精度(可通过配置调整)为百分比。100表示系统满负荷运转。 更多...
|
|
STATIC UINT32 | OsHistoryProcessCpuUsageUnsafe (UINT32 pid, UINT16 mode) |
|
LITE_OS_SEC_TEXT_MINOR UINT32 | LOS_HistoryProcessCpuUsage (UINT32 pid, UINT16 mode) |
| 获取指定进程历史CPU占用率 指单个进程的CPU占用率,用于表示单个进程在一段时间内的闲忙程度。进程CPU占用率的有效表示范围为0~100, 其精度(可通过配置调整)为百分比。100表示在一段时间内系统一直在运行该进程。 更多...
|
|
STATIC UINT32 | OsHistoryTaskCpuUsageUnsafe (UINT32 tid, UINT16 mode) |
|
LITE_OS_SEC_TEXT_MINOR UINT32 | LOS_HistoryTaskCpuUsage (UINT32 tid, UINT16 mode) |
| 获取指定任务历史CPU占用率 指单个任务的CPU占用率,用于表示单个任务在一段时间内的闲忙程度。任务CPU占用率的有效表示范围为0~100, 其精度(可通过配置调整)为百分比。100表示在一段时间内系统一直在运行该任务。 更多...
|
|
STATIC UINT32 | OsCpupUsageParamCheckAndReset (CPUP_INFO_S *cpupInfo, UINT32 len, UINT32 number) |
|
LITE_OS_SEC_TEXT_MINOR UINT32 | OsGetAllProcessCpuUsageUnsafe (UINT16 mode, CPUP_INFO_S *cpupInfo, UINT32 len) |
|
LITE_OS_SEC_TEXT_MINOR UINT32 | LOS_GetAllProcessCpuUsage (UINT16 mode, CPUP_INFO_S *cpupInfo, UINT32 len) |
| 获取系统所有进程的历史CPU占用率 更多...
|
|
LITE_OS_SEC_TEXT_MINOR UINT32 | OsGetAllProcessAndTaskCpuUsageUnsafe (UINT16 mode, CPUP_INFO_S *cpupInfo, UINT32 len) |
|
LITE_OS_SEC_TEXT_MINOR VOID | OsCpupIrqStart (UINT16 cpuid) |
|
LITE_OS_SEC_TEXT_MINOR VOID | OsCpupIrqEnd (UINT16 cpuid, UINT32 intNum) |
|
LITE_OS_SEC_TEXT_MINOR OsIrqCpupCB * | OsGetIrqCpupArrayBase (VOID) |
|
LITE_OS_SEC_TEXT_MINOR UINT32 | OsGetAllIrqCpuUsageUnsafe (UINT16 mode, CPUP_INFO_S *cpupInfo, UINT32 len) |
|
LITE_OS_SEC_TEXT_MINOR UINT32 | LOS_GetAllIrqCpuUsage (UINT16 mode, CPUP_INFO_S *cpupInfo, UINT32 len) |
| 获取系统所有中断的历史CPU占用率 指单个中断的CPU占用率,用于表示单个中断在一段时间内的闲忙程度。中断CPU占用率的有效表示范围为0~100, 其精度(可通过配置调整)为百分比。100表示在一段时间内系统一直在运行该中断。 更多...
|
|
http://weharmonyos.com/openharmony/zh-cn/device-dev/kernel/kernel-small-debug-process-cpu.html
基本概念
CPU(中央处理器,Central Processing Unit)占用率分为系统CPU占用率、进程CPU占用率、任务CPU占用率
和中断CPU占用率。用户通过系统级的CPU占用率,判断当前系统负载是否超出设计规格。通过系统中各个
进程/任务/中断的CPU占用情况,判断各个进程/任务/中断的CPU占用率是否符合设计的预期。
系统CPU占用率(CPU Percent)
指周期时间内系统的CPU占用率,用于表示系统一段时间内的闲忙程度,也表示CPU的负载情况。系统CPU占用率
的有效表示范围为0~100,其精度(可通过配置调整)为百分比。100表示系统满负荷运转。
进程CPU占用率
指单个进程的CPU占用率,用于表示单个进程在一段时间内的闲忙程度。进程CPU占用率的有效表示范围为0~100,
其精度(可通过配置调整)为百分比。100表示在一段时间内系统一直在运行该进程。
任务CPU占用率
指单个任务的CPU占用率,用于表示单个任务在一段时间内的闲忙程度。任务CPU占用率的有效表示范围为0~100,
其精度(可通过配置调整)为百分比。100表示在一段时间内系统一直在运行该任务。
中断CPU占用率
指单个中断的CPU占用率,用于表示单个中断在一段时间内的闲忙程度。中断CPU占用率的有效表示范围为0~100,
其精度(可通过配置调整)为百分比。100表示在一段时间内系统一直在运行该中断。
运行机制
OpenHarmony LiteOS-A内核CPUP(CPU Percent,CPU占用率)模块采用进程、任务和中断级记录的方式,在进程/任务切换时,
记录进程/任务启动时间,进程/任务切出或者退出时,系统会累加整个进程/任务的占用时间; 在执行中断时系统会累加记录
每个中断的执行时间。
OpenHarmony 提供以下四种CPU占用率的信息查询:
系统CPU占用率
进程CPU占用率
任务CPU占用率
中断CPU占用率
CPU占用率的计算方法:
系统CPU占用率=系统中除idle任务外其他任务运行总时间/系统运行总时间
进程CPU占用率=进程运行总时间/系统运行总时间
任务CPU占用率=任务运行总时间/系统运行总时间
中断CPU占用率=中断运行总时间/系统运行总时间
开发流程
CPU占用率的典型开发流程:
调用获取系统历史CPU占用率函数LOS_HistorySysCpuUsage。
调用获取指定进程历史CPU占用率函数LOS_HistoryProcessCpuUsage。
若进程已创建,则关中断,根据不同模式正常获取,恢复中断;
若进程未创建,则返回错误码;
调用获取所有进程CPU占用率函数LOS_GetAllProcessCpuUsage。
若CPUP已初始化,则关中断,根据不同模式正常获取,恢复中断;
若CPUP未初始化或有非法入参,则返回错误码;
调用获取指定任务历史CPU占用率函数LOS_HistoryTaskCpuUsage。
若任务已创建,则关中断,根据不同模式正常获取,恢复中断;
若任务未创建,则返回错误码;
调用获取所有中断CPU占用率函数LOS_GetAllIrqCpuUsage。
若CPUP已初始化,则关中断,根据不同模式正常获取,恢复中断;
若CPUP未初始化或有非法入参,则返回错误码;
- 注意
- 版本
- 作者
- weharmonyos.com | 鸿蒙研究站 | 每天死磕一点点
- 日期
- 2021-11-21
在文件 los_cpup.c 中定义.