zhushengle
|
6d8cef40c8
|
feat: swtmr机制与调度分离,调度只针对通用线程,不针对特殊功能
背景:
原调度机制与软件定时器实现混合,调度时间链表存在两个链表,
任务切换时需要遍历两个链表才可以获取到最终的tick响应时间。
软件定时作为一个独立的功能,不应该和调度强耦合,而且软件定时
器作为一个任务,某个软件定时器的响应时间应该是软件定时器任务的
响应时间,不应该直接做为tick中断的响应时间。
方案描述:
1.将软件定时器从调度分离,作为一个独立的机制,从调度角度看其就是一个任务
2.软件定时器从调度分离之后,其timelist遍历从tick中断移动至软件定时器任务中
3.优化软件定时器的均衡调度
优势:
1.将软件定时器与调度完全分离,使得调度功能单一化,便于后续其它调度算法的引入
2.优化tick中断,减小tick中断耗时
3.优化通过写队列唤醒软件定时器任务去执行软件定时器钩子为插队列,减少软件定时
器机制本身的耗时,提升软件定时器的实时性
4.优化软件定时器均衡调度,使得软件定时器均匀分布于多核,提升软件定时器的实时性
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I07c01f134e69c1d9b7061ddf5a231df1ee99b68e
|
2022-03-19 11:23:36 +08:00 |
zhushengle
|
f02d40d25d
|
feat: 优化shell 命令
1.优化task 命令关中断时间较长的问题
2.优化hwi 命令,可以查看不同核的中断分布情况
3.丰富hiw 命令,统计每个中断在一定时间内的平均执行时间和最大执行时间
4.丰富swtmr 命令,在debug模式下支持查看各软件定时器的运行情况, 默认关闭
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I01cfe50c918da51f9de5b460e9eb91a863e1de36
|
2022-03-07 15:25:38 +08:00 |
zhushengle
|
0e3936c4f8
|
feat: 调度相关模块间依赖优化
背景:
调度、线程、软件定时器、sortlink、percpu、异常、workqueue模块相互耦合,存在很多不属于本模块的实现,
导致这几个模块间依赖混乱、且到处引用其它模块的内部成员。
方案描述:
解决上述依赖混乱的问题,为后续调度框架打基础,优化后依赖关系:
| ---> los_swtmr_pri.h --> workqueue
los_sortlink_pri.h: ---> los_sched_pri.h --> los_task_pri.h -->
作为基础算法 | ---> ipc
(现在为双向链表),
做到功能最小化,
便于后续其它算法替换
调度框架大体方案描述:
1.cpu run queue ----> 任务延时队列
|---- 调度队列
|---- EDF --->
| |---- 方法(Delay、Suspend、Resume、EntReadyQue、Exit等)
|
| |---- 调度队列
2.task ---> 调度策略----> SCHED_RR --->
| |---- 方法(Delay、Suspend、Resume、EntReadyQue、Exit等)
|
| |---- 调度队列
|----> SCHED_IDLE --->
|---- 方法(Delay、Suspend、Resume、EntReadyQue、Exit等)
Close #I4RPRW
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ia54dc1b8a4801a225a52e40555490c1dce0bd75e
|
2022-01-21 15:52:51 +08:00 |
zhushengle
|
f47da44b39
|
feat: 调度tick响应时间计算优化
1.tick timer与调度进一步剥离
2.性能敏感函数内敛化
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Icf62f002fa57d452cdd23a4c7b5e6610e2785f8e
|
2022-01-18 20:50:35 +08:00 |
mamingshuai
|
73a7b66116
|
update openharmony 1.0.1
|
2021-03-11 18:43:57 +08:00 |
Caoruihong
|
63bd69267a
|
drop unnecessary executable file permission mode
Change-Id: Ia6c1f6302407a707b3ec9b805f4c92d8a7970b86
|
2020-10-13 16:37:25 +08:00 |
wenjun
|
6df931fc98
|
add OpenHarmony 1.0 baseline
|
2020-09-08 17:22:24 +08:00 |