Commit Graph

95 Commits

Author SHA1 Message Date
arvinzzz 47fac7158e fix: 内源检视问题修复
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I7c0b8f4026d8fbd4b0d985d4ce82187e56f1d6ec
2022-03-18 16:06:23 +08:00
x_xiny bc70db58a7 fix:修复拼写错误
Signed-off-by: x_xiny <1301913191@qq.com>
Change-Id: I1cc4897e5d37dd98696221f0cc70220cef45e7d4
2022-03-14 22:22:56 +08:00
x_xiny 0f75bf01a6 fix:内源代码检视拼写错误修改
【背景】3.1代码review问题修改

    【修改方案】
     根据检视意见对拼写错误进行修改

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

Change-Id: I9fb982a8ba2052fa4d56e91eec33c96ab4035a90
2022-03-14 17:34:46 +08:00
openharmony_ci 87a7df48b8
!821 fix: 源代码检视问题修复
Merge pull request !821 from xuxinyu/master
2022-03-10 12:13:18 +00:00
openharmony_ci 9f8127cc54
!824 fix: 源码检视修复
Merge pull request !824 from yinjiaming/master
2022-03-10 08:19:06 +00:00
x_xiny 0770e5f972 fix:内源代码检视修改(安全函数)
【背景】3.1代码review问题修改

【修改方案】
 根据检视意见对安全函数,版权等信息进行修改

 re #I4WV56

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

Change-Id: Ia2a6ba828700006f6bfe810714e2cd88fc2ccddc
2022-03-10 14:40:58 +08:00
yinjiaming 9a030d6930 fix: 修复3.1源码检视的问题
【背景】
3.1 代码检视过程中有一些问题需要修复

【修改方案】
修改了失效的文档链接,更改了一些非可执行文件的权限

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

Signed-off-by: yinjiaming <yinjiaming@huawei.com>
Change-Id: If87ac9a3e17ba679f4712552f5a89cc13349287e
2022-03-09 09:34:31 +00:00
openharmony_ci b797f50596
!813 主干告警清零
Merge pull request !813 from yinjiaming/master
2022-03-09 03:51:33 +00: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
yinjiaming 672bc729a6 fix: 主干告警清理
【背景】
主干告警清理

【修改方案】
在需要的地方添加了强制类型转换

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

Signed-off-by: yinjiaming <yinjiaming@huawei.com>
Change-Id: Id6693137310d8c2e63f4e5489564d7c01c016a18
2022-03-03 12:04:22 +00:00
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
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
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
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 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
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 0f878febb7 chore: 修复社区反馈问题Percpu结构体注释错误
修复社区反馈问题Percpu结构体注释错误,排查下其他拼写错误。

close #I4GMLH

Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-11-10 10:20:33 +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
YOUR_NAME eedde91826 Modify folder and file permissions
Signed-off-by: YOUR_NAME <mashuang9@huawei.com>
2021-11-04 14:50:42 +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
zhushengle 52379242c1 feat: liteipc 静态内存优化
Close #I4G4HP
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I259c792365d9747f391c5bd275e77f04b83e0792
2021-11-02 11:54:08 +08:00
zhushengle 5004ef4d87 fix: 优化liteipc任务状态,删除功能重复字段
LosTaskCB 中 字段waitFlag 用于专门记录任务被阻塞的原因,与ipcStatus 功能重复
Close #I4FVHK

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ie0998b987ba6e1db050596dec3b359e73ca47686
2021-10-29 12:02:00 +08:00
zhushengle 0f0e85b7a6 fix: 非当前进程销毁时,销毁liteipc时错误的销毁了当前进程的liteipc资源
Close #I4FSA7
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I8b24a1e1554b4b867a841bc1b6765cbfd648cdbd
2021-10-28 17:30:54 +08:00
shenchenkai c121d0eea3 Description:[fix] clean hilog/hievent ring buffer after memory verification failed
Change-Id: I9310fe807ec95721be78deb60ed9728ef9b56e48
Signed-off-by: shenchenkai <shenchenkai@huawei.com>
2021-10-22 17:00:10 +08:00
openharmony_ci bda00e6747 !655 TCB中使用的execFile字段改为execVnode
Merge pull request !655 from LeonChan/execfile
2021-10-15 01:45:58 +00:00
openharmony_ci d3b618887a !660 fix: 优化trace buffer初始化,删除swtmr 桩中的无效参数
Merge pull request !660 from LiteOS/master
2021-10-14 02:41:05 +00: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
Haryslee 665c152c27 fix: 修复硬随机不可用时,地址随机化不可用问题
方案:硬随机不可用时,默认使用软随机数代替硬随机数

close #I4D4TK

Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: Ia7d2a9583257d7b8041b8994a70a7c36149c33fb
2021-10-11 10:00:08 +08:00
Leon Chan e4a06623ce fix: change the execFile field in TCB to execVnode
TEE需要借用TCB中的execFile来校验打开的文件,pagecache修改后,可执行程序在mmap之后,会被立即关闭,因此将execFile改为execVnode

close: #I4CLL9

Signed-off-by: Leon Chan <chenwei26@huawei.com>
2021-09-30 14:33:36 +08:00
Haryslee 06ea03715f feat: 支持AT_RANDOM以增强用户态栈保护能力
背景:不开地址随机化时,用户态栈CANARY值是固定值
方案:支持AT_RANDOM,CANARY从AT_RANDOM获取随机值以增强用户态栈保护能力

close #I4CB8M

Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: I28cef09f7016a5096e2096d4f6aa72722fcf1fd7
2021-09-30 10:36:12 +08:00
openharmony_ci 2c33cfce86 !599 feat: L0~L1 支持Perf
Merge pull request !599 from LiteOS/perf
2021-09-29 06:15:02 +00:00
LiteOS2021 6e0a3f10bb feat: L0-L1 支持Perf
1.【需求描述】:
         L0-L1 支持Perf,提供2种模式的配置, 及3大类型的事件配置:
         2种模式:计数模式(仅统计事件发生次数)、采样模式(收集上下文如任务ID、pc、backtrace等)。
         3种事件类型:CPU硬件事件(cycle、branch、icache、dcache等)、OS软件事件(task switch、mux pend、irq等)、高精度周期事件(cpu          clock)。
    2.【方案描述】:
         L0:
         基于事件采样原理,以性能事件为基础,当事件发生时,相应的事件计数器溢出发生中断,在中断处理函数中记录事件信息,包括当前的pc、当前运         行的任务ID以及调用栈等信息。
         L1:
         新增perf字符设备,位于“dev/perf”,通过对设备节点的read\ioctl,实现用户态perf

    BREAKING CHANGE:
    1.新增一系列perf的对外API,位于los_perf.h中.
    LOS_PerfInit配置采样数据缓冲区
    LOS_PerfStart开启Perf采样
    LOS_PerfStop停止Perf采样
    LOS_PerfConfig配置Perf采样事件
    LOS_PerfDataRead读取采样数据
    LOS_PerfNotifyHookReg 注册采样数据缓冲区的钩子函数
    LOS_PerfFlushHookReg 注册缓冲区刷cache的钩子

    2. 用户态新增perf命令
  【Usage】:
./perf [start] /[start id] Start perf.
./perf [stop] Stop perf.
./perf [read nBytes] Read nBytes raw data from perf buffer and print out.
./perf [list] List events to be used in -e.
./perf [stat] or [record] <option> <command>
         -e, event selector. use './perf list' to list available events.
         -p, event period.
         -o, perf data output filename.
         -t, taskId filter(whiltelist), if not set perf will sample all tasks.
         -s, type of data to sample defined in PerfSampleType los_perf.h.
         -P, processId filter(whiltelist), if not set perf will sample all processes.
         -d, whether to prescaler (once every 64 counts), which only take effect on cpu cycle hardware event.

    Close #I47I9A

Signed-off-by: LiteOS2021 <dinglu@huawei.com>
Change-Id: Ieb9b7483c85d1495df7c55bc0027f4309dff9814
2021-09-28 19:28:34 +08:00
openharmony_ci 7d7cff4c51 !633 fix: codex清理
Merge pull request !633 from Far/master
2021-09-27 08:38:37 +00:00
Far 9ab3e351d3 fix: codex 清理
Close #I4BL3S

Signed-off-by: Far <yesiyuan2@huawei.com>
2021-09-27 14:43:28 +08:00
Leon Chan a375bf5668 fix: close file when process interpretor failed
close: #I4ATQX

Signed-off-by: Leon Chan <chenwei26@huawei.com>
2021-09-18 15:02:22 +08:00
openharmony_ci ecd9ca7781 !534 pagecache从filep改为使用vnode
Merge pull request !534 from LeonChan/pg
2021-09-15 03:51:50 +00:00