zhushengle
|
eddcb840d3
|
feat: 支持调度框架
Close #I4Z3BL
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I5f32d1001ffabc0f725ce65b51ed9b3791e97f2b
|
2022-03-30 15:54:47 +08:00 |
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
|
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 |
kenneth
|
0f878febb7
|
chore: 修复社区反馈问题Percpu结构体注释错误
修复社区反馈问题Percpu结构体注释错误,排查下其他拼写错误。
close #I4GMLH
Signed-off-by: kenneth <zhushangyuan@huawei.com>
|
2021-11-10 10:20:33 +08:00 |
LiteOS2021
|
b551270ef5
|
fix: 优化trace buffer初始化,删除swtmr 桩中的无效参数
close #I4DQ1X
Signed-off-by: LiteOS2021 <dinglu@huawei.com>
Change-Id: I79b416720f5327749a5884a65a5e61db07f2a17c
|
2021-10-14 09:47:11 +08:00 |
LiteOS2021
|
dc9ec6856f
|
feat: L0-L1 支持Trace
1.【需求描述】
L0~L1 支持Trace,提供两种工作模式:在线模式、离线缓存模式, 用于按时间线追踪系统事件,如任务切换、中断、ipc等。
2.【方案描述】
L0:
(1).在内核模块预置静态代码桩
(2).触发桩后,收集系统上下文信息
(3).离线模式则写入内存,用户可通过dump导出;
(4).在线模式通过pipeline对接IDE进行可视化解析和展示;
L1:
新增trace字符设备,位于"/dev/trace",通过对设备节点的read\write\ioctl,实现用户态trace;
BREAKING CHANGE:
1.新增一系列trace的对外API,位于los_trace.h中.
LOS_TRACE_EASY简易插桩
LOS_TRACE标准插桩
LOS_TraceInit配置Trace缓冲区的地址和大小
LOS_TraceStart开启事件记录
LOS_TraceStop停止事件记录
LOS_TraceRecordDump输出Trace缓冲区数据
LOS_TraceRecordGet获取Trace缓冲区的首地址
LOS_TraceReset清除Trace缓冲区中的事件
LOS_TraceEventMaskSet设置事件掩码,仅记录某些模块的事件
LOS_TraceHwiFilterHookReg注册过滤特定中断号事件的钩子函数
Close #I46WA0
Signed-off-by: LiteOS2021 <dinglu@huawei.com>
Change-Id: I6a8e64794c4852f2c2980993a06180e09ec6ee0d
|
2021-08-31 20:29:45 +08:00 |
arvinzzz
|
8cde768588
|
refactor: Refactored the kernel boot process and added a init framework
close: #I3I768
Change-Id: I4f801df4abe1a9afdf43391c28276e96a5e81513
|
2021-05-20 16:45:43 +08:00 |
boxi
|
4d863e985b
|
fix: Fix wrong judgment in los_trace.c to avoid null pointer access.
Fix wrong judgment in los_trace.c to avoid null pointer access.
Close #I3RT9F
Change-Id: Id37b80fc6acc085205695318232d5f4fd75472aa
|
2021-05-18 17:21:47 +08:00 |
Caoruihong
|
7e73c929a2
|
remove __cplusplus guards in .c files
Change-Id: I052d930d54e63179b17b77f02c107a015f3cfc3f
|
2021-04-19 18:28:25 +08:00 |
wangchenyang
|
d970750808
|
Description:vfs refactoring
Feature or Bugfix:Feature
Binary Source:Huawei
PrivateCode(Yes/No):Yes
Change-Id: I175d2648bc6f9078c34de2c0a5c93fda10b86c47
ChangeID:13306388
|
2021-03-19 13:22:46 +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 |