Commit Graph

370 Commits

Author SHA1 Message Date
openharmony_ci 74f8d3aa07
!804 feat: 调度去进程化,优化进程线程依赖关系
Merge pull request !804 from zhushengle/sched_process
2022-01-27 12:03:34 +00:00
zhushengle dc479fb7bd feat: 调度去进程化,优化进程线程依赖关系
1.移动LosTaskCB 至los_sched_pri.h, 解决调度与task的依赖关系
2.调度去进程化

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ibd3b618cee59f0b323e2b4fb14354c088b60b733
2022-01-27 14:30:50 +08:00
openharmony_ci 6c0865dd46
!779 liteos-a kernel 部件标准化
Merge pull request !779 from Hongjin Li/lihongjin/br_dev
2022-01-22 09:59:39 +00: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
Hongjin Li 1ecda9c033 chore: kernel部件化
1、添加HPM包描述文件bundle.json
2、依赖的三方开源软件,由直接引用路径,改为import对应的gni文件,引用变量

Signed-off-by: Hongjin Li <lihongjin1@huawei.com>
Change-Id: Ice783c19a477626d422a37faf3d420c4965f8ea6
2022-01-20 16:44:34 +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
x_xiny 87b8e6b0ad fix: L1-liteos-tdd测试liteos_a_process_unittest.bin,liteos_a_security_vid_unittest.bin和liteos_a_time_clock_unittest.bin模块用例un
【背景】L1-liteos-tdd测试liteos_a_process_unittest.bin,liteos_a_security_vid_unittest.bin和liteos_a_time_clock_unittest.bin模块用例un

【修改方案】
 1.暂时将musl中的exit()接口中的原子操作改为使用mutex方式实现
 2.删除内核中不必要的打印

re #I4K9A5

Signed-off-by: xuiny <xuxinyu6@huawei.com>
Change-Id: Ifdbb9154c7541b863670bb4e3bcde2587970df38
2022-01-13 21:26:43 +08:00
openharmony_ci 48f5481c65
!771 【轻量级 PR】:reduce print log if hilog ringbuffer is full
Merge pull request !771 from shenchenkai/N/A
2022-01-11 06:29:13 +00:00
openharmony_ci c18b51182b
!759 fix: MMU竞态问题修复
Merge pull request !759 from Harylee/mmu
2022-01-10 13:07:43 +00:00
Haryslee 748e0d8ffb fix: MMU竞态问题修复
背景:同一个进程的多个线程读写同一个PTE时,由于PTE无保护,存在竞态问题。
方案:新增spinlock保护PTE,包括大锁跟小锁。大锁:一个进程只有一个spinlock锁,多个线程
读写PTE时竞争一把锁,锁的内存占用小,但系统性能降低;小锁:每个页表持有一把spinlock,
由于锁是page结构体的一个字段,内存消耗较大,但是相对大锁性能较优。系统默认使用大锁,用
户可根据具体需要配置使用大锁还是小锁。

close #I2WARC

Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: I5612eeac1f65507160035eae16af61f285182eda
2022-01-08 14:55:45 +08:00
x-xiny 1cdd7307f3 Codex告警清除
【背景】
 Codex扫描告警清除

【修改方案】
 将不可屏蔽告警进行修复

 re #I4PNO3

 Signed-off-by: xuiny <xuxinyu6@huawei.com>

Change-Id: If6f85eb9679d47e6256f24cdc74246df78da579d
2022-01-07 09:49:47 +00:00
shenchenkai b65897d517
reduce print log if hilog ringbuffer is full
Signed-off-by: shenchenkai <shenchenkai@huawei.com>
2022-01-07 09:47:49 +00:00
Haryslee 6c2b163c7d fix: 修复重复执行内存用例导致系统卡死问题
背景:重复执行内存测试用例约几百次,系统大概率出现卡死现象,经分析知,系统卡在
内存spinlock锁中,CPU1在获取内存spinlock锁后打印异常信息,此时循环buffer满了,
CPU0此时进入异常且尝试拿取内存spinlock锁,两个核都处于锁中断锁任务状态,CPU1
写事件触发调度打印输出失败,进而在write接口中死循环无法退出,导致两个核都卡住。
方案:在write接口中增加一个判断条件:当前核处于锁任务状态且循环buffer满了时候,
直接退出循环,丢弃打印信息(持有spinlock锁后一般禁止输出打印信息)。

close #I4F7PO

Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: I3f49a1bb211821e9c5d1d220d6867962d6a45a79
2021-12-29 14:27:43 +08:00
zff 53addea304 fix: LOS_Panic和魔法键功能中的使用PRINTK打印,依赖任务调度,特殊情况下存在打印不出来的问题
close: #I4NOC7

Signed-off-by: zff <zhangfanfan2@huawei.com>
Change-Id: I7f28e79293d3388e2b1d7208c2b8ff8ff133528a
2021-12-22 17:02:58 +08:00
shenchenkai 0e48a0dd12 Description:[feature] support customized hilog ring buffer size
Change-Id: I5d23deaada5939bbb6fb57505f72c2348bd6afe9
Signed-off-by: shenchenkai <shenchenkai@huawei.com>
2021-12-17 15:45:53 +08:00
openharmony_ci 52c12f7c9d !730 【轻量级PR】 console.c 分支优化
Merge pull request !730 from 雷电_SWAT/master
2021-12-16 04:26:19 +00:00
openharmony_ci 1e875d921b !734 fix: Watchdog test case repair
Merge pull request !734 from 尹树清/master
2021-12-15 02:59:56 +00:00
yinshuqing bc69ca104c Watchdog test case repair
Signed-off-by: yinshuqing <yinshuqing@huawei.com>
2021-12-14 20:28:32 +08:00
arvinzzz 0d325c56a1 refactor: los_cir_buf.c中接口整合
将循环buf的上/解锁操作合进读/写操作里,删除对外上/解锁接口

BREAKING CHANGE:
1. 删除 LOS_CirBufLock(),LOS_CirBufUnlock()内核对外接口
2. LOS_CirBufWrite(),LOS_CirBufRead()由原先内部不进行上/解锁操作,变为默认已包含上/解锁操作。

close: #I4MC13

Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: Ie3cc1abde7fa0e5479ccbf4e596426e509b5cef5
2021-12-14 11:00:36 +08:00
lcjh 2ada41c826 分支优化
去除不必要分支,使用三元操作符优化简单分支
Signed-off-by: lcjh <120989324@qq.com>
2021-12-11 12:35:41 +08:00
openharmony_ci 67e31f7b45 !726 fix: 删除冗余的头文件los_pmm.h
Merge pull request !726 from kenneth/los_pmm.h
2021-12-03 07:02:35 +00:00
kenneth 1a8e22dcf1 fix: 修改MMU模块的注释错误
修改los_arch_mmu.c中的page_idx 为scanIndex,修改pmm_alloc_page为LOS_PhysPageAlloc。

fix #I4KMMJ

Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-12-03 11:07:18 +08:00
kenneth 8e614bb161 fix: 删除冗余的头文件
删除无用的头文件kernel\base\include\los_pmm.h

fix #I4KN63

Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-12-03 10:59:20 +08:00
zhushengle 2cd03c55b7 fix: los_stat_pri.h中缺少依赖的头文件
在los_stat_pri.h中添加los_typedef.h

Close #I4KEZ1

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I19f8b79f9f559e1324432280f123a911bf8caf27
2021-12-01 09:24:52 +08:00
zhushengle 212d1bd1e8 feat: 提供低功耗默认处理框架
添加系统在不同低功耗下的默认处理函数。
Close #I4KBG9

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I7d9a32d03daf32998f4cfca17c57b3f0e614d4ac
2021-11-30 10:49:47 +08:00
zhushengle 64e49aba7c feat: 支持L1 低功耗框架
方案描述:
   和L0保持一致,上层通过proc文件系统操作:
   power_mode  支持的低功耗模式,通过对该文件进行write操作可以设置低功耗模式
   power_count powermanager模块通过对该文件操作,和内核进行交互,简要流程如下:
     while (1) {
       open  // 打开该文件
       read  // 使powermanager低功耗任务常阻塞,当系统无任何模块持锁时,会唤醒该任务
       write // 进行低功耗流程
       close // 关闭该文件
     }
   power_lock    write该文件,持锁
   power_unlock  writw该文件,释放锁

Close #I4JSO

Change-Id: I73fcdeeb5e2039484b3351a81b46a0892b349fe9
Signed-off-by: zhushengle <zhushengle@huawei.com>
2021-11-29 11:58:47 +08:00
LiteOS2021 e748fdbe57 feat: L0~L1 支持Lms
1.【需求描述】:
   支持内核态和用户态堆内存非法访问检测,包括:越界访问、double free、释放后使用;支持libc常用高频函数内存检测;支持安全函数内存检测;读写检测可配可裁剪。
2.【方案描述】:
   L0 ~ L1:
   (1).影子内存映射与标记
   (2).编译器使能-fsanitize=kernel-address 自动插桩检测点
   (3).实时校验影子内存的合法性;
   (4).错误访问打印回溯栈

BREAKING CHANGE: 新增支持API:

LOS_LmsCheckPoolAdd使能检测指定内存池
LOS_LmsCheckPoolDel不检测指定内存池
LOS_LmsAddrProtect为指定内存段上锁,不允许访问
LOS_LmsAddrDisableProtect去能指定内存段的访问保护

Close #I4HYAV

Signed-off-by: LiteOS2021 <dinglu@huawei.com>
Change-Id: Id8e5c890656da9edc4a22227e6a3c32205c024ce
2021-11-27 11:13:41 +08:00
openharmony_ci ce4323ff16 !704 【fix】smp启动时副核冗余的启动框架调用
Merge pull request !704 from Zhaotianyu/1110smpinit_fix
2021-11-25 22:48:51 +00:00
openharmony_ci 5db6c62313 !710 清理YES/NO宏
Merge pull request !710 from Caoruihong/remove_yesno
2021-11-18 09:32:42 +00:00
openharmony_ci fe4082ca9e !709 A核代码静态告警定期清理
Merge pull request !709 from wangchen/1112_codex
2021-11-16 06:47:22 +00:00
openharmony_ci ac08912230 !706 fix: 修复los_vm_scan.c中内部函数OsInactiveListIsLow冗余代码
Merge pull request !706 from kenneth/los_vm_scan
2021-11-16 00:48:50 +00:00
Caoruihong bba832ea08 chore: replace YES/NO macros to 1/0
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I40e31e82c33418019c1afc16ac174919e72fbb07
2021-11-16 01:27:06 +08:00
lnlan 9ba725c3d4 fix: A核代码静态告警定期清理
【背景】A核代码静态告警定期清理

【修改方案】
1,根据codex等工具分析结果,进行必要的规范等问题修改

【影响】
对现有的产品编译不会有影响。

re #I4I0O8
Signed-off-by: wangchen <253227059@qq.com>
2021-11-15 02:47:08 +00:00
kenneth 2bddff54c8 chore: 优化函数OsVmRegionRightCheck命名
函数名称OsVmRegionRightCheck修改为OsVmRegionPermissonCheck进行内存区间权限检查

close #I4HR6I

Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-11-11 19:52:25 +08:00
kenneth bc32a1ec0f fix: 修复los_vm_scan.c中内部函数OsInactiveListIsLow冗余代码
函数OsInactiveListIsLow()和InactiveListIsLow()代码重复,删除冗余代码。

close #I4HKFF

Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-11-11 19:44:34 +08:00
arvinzzz 5ce70a50c3 fix: smp初始化中副核冗余的启动框架调用
close: #I4F8A5

Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I9a863d3265fd18051d8bfcaab51ad59216630e91
2021-11-10 19:14:29 +08:00
kenneth 0f878febb7 chore: 修复社区反馈问题Percpu结构体注释错误
修复社区反馈问题Percpu结构体注释错误,排查下其他拼写错误。

close #I4GMLH

Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-11-10 10:20:33 +08:00
openharmony_ci f63ce99399 !692 chore: 修复内存模块的一些不规范用语
Merge pull request !692 from kenneth/mmu_fix
2021-11-10 02:06:29 +00:00
openharmony_ci e317f9b5b5 !702 fix: shell支持exit退出,完善帮助信息,特殊处理不可见字符
Merge pull request !702 from huangshan/chore
2021-11-09 09:26:47 +00:00
huangshan cc6e11281e fix: shell支持exit退出,完善帮助信息,特殊处理不可见字符
Change-Id: Ia6dbff0faed4ec73fcf35691676f1acb2b8df78d
Signed-off-by: huangshan <huangshan9@huawei.com>
2021-11-08 18:13:38 +08:00
openharmony_ci 9525ca2826 !697 修改blackbox生成的文件和文件夹权限
Merge pull request !697 from mgceshuang/upload_teeee
2021-11-08 02:27:30 +00:00
openharmony_ci 3b8083815c !701 按照门禁要求对所有BUILD.gn脚本进行格式化
Merge pull request !701 from Caoruihong/gnformat
2021-11-06 04:48:29 +00:00
Caoruihong a2fed9a56c chore(build): format all BUILD.gn files
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: Ifd3bf13f53a27e0a0bbd051cf35662e7409e6ed0
2021-11-06 11:55:58 +08:00
openharmony_ci 5077b1793f !693 fix: 修复Ctrl+C会终止所有进程的问题
Merge pull request !693 from huangshan/fix-pgrp
2021-11-05 05:58:22 +00:00
YOUR_NAME eedde91826 Modify folder and file permissions
Signed-off-by: YOUR_NAME <mashuang9@huawei.com>
2021-11-04 14:50:42 +08:00
huangshan cdc0877f16 修复Ctrl+C会终止所有进程的问题
Signed-off-by: huangshan <huangshan9@huawei.com>
Change-Id: I5861569c63fd6c1adf8c702797e4d79eba76211f
2021-11-04 12:23:20 +08:00
zhushengle f06e090a10 feat: 进程cpup占用率结构优化为动态分配
Close #I4GLNT
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I7f3dd61bbf014fa157b1f9a0a089fd985fe188c2
2021-11-02 19:57:26 +08:00
openharmony_ci 38163de8f3 !687 feat: liteipc 静态内存优化
Merge pull request !687 from zhushengle/liteipc
2021-11-02 11:05:46 +00:00
openharmony_ci fcb21ffc8a !676 修复ppoll接口"[ERR]OsMemFree check error!"报错
Merge pull request !676 from pef/ppoll-1
2021-11-02 09:35:09 +00:00
lnlan 2e3bbf1e61 修复ppoll接口"[ERR]OsMemFree check error!"报错
【背景】
1.内核中释放用户空间指针报错:"[ERR]OsMemFree check error!"
2.现有ppoll实现存在问题
3.相关用例需要整理
【修改方案】
1.去掉释放用户空间指针操作
2.更正逻辑错误
3.更正掩码设置与恢复不起作用
4.修复补充现有用例
【影响】
对现有的产品编译不会有影响。

re #I47YWZ

Change-Id: Ib2f60986e9cafb2ea5ef1097ab8552cbb1ede5b4
Signed-off-by: lnlan <lanleinan@163.com>
2021-11-02 07:04:35 +00:00