zhushengle
|
b45cdbda3e
|
feat: 支持cgroups
BREAKING CHANGE:
支持cgroups对外变更:
1.在proc目录下支持plimits目录,支持ipc, pid, memory, devices, sched控制器
Close #I6GVPL
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ib996e07bf148abce9e40290d6188b763b52e89bb
|
2023-02-23 09:32:17 +08:00 |
zhushengle
|
f397c63fbd
|
feat: 支持user容器
Close #I6EC0A
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I5314959e66090b0614ad8d2058dc9dff4f0031b0
|
2023-02-11 16:21:59 +08:00 |
zhushengle
|
1ef64e26a1
|
feat: 支持setns接口
BREAKING CHANGE:
支持setns接口对外变更:
1.新增setns接口
Close #I6D9Y0
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I9aacf9e5b8463e8e6c743a0041a5b2b18fdb0e12
|
2023-02-09 13:52:54 +08:00 |
zhushengle
|
fd925a8163
|
fix: 修复容器内存泄露问题
1.修复内存泄露
2.修复获取内核信息单位、描述错误
Close #I6CD5C
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I875bec616064517b21af8e69ef8d6e177ec01ce1
|
2023-02-03 12:21:26 +08:00 |
zhushengle
|
325b4a49e4
|
feta: 支持unshare接口
BREAKING CHANGE:
支持unshare接口对外变更
1.支持unshare接口,flags支持:CLONE_NEWPID, CLONE_NEWTIME, CLONE_NEWUTS
Close #I6BE5A
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ib61abad2fa03a7100bf808e93830f2094fa1c5a6
|
2023-01-30 10:30:54 +08:00 |
zhushengle
|
16ed05e844
|
feat: 支持time容器
BREAKING CHANGE:
支持ipc容器及增强对外变更:
1.clone 支持CLONE_NEWTIME
2.增加”/proc/[pid]/container/time" 用于查询容器信息
3.增加”/proc/[pid]/container/time_for_children" 用于查询容器信息
4.增加”/proc/[pid]/container/pid_for_children" 用于查询容器信息
5.增加”/proc/[pid]/time_offsets" 用于查询和配置time容器信息
Close #I6B0A3
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I54d79937ca608a10a4384f61e11c88757f833edf
|
2023-01-19 15:03:18 +08:00 |
zhushengle
|
34814c58a3
|
feat: 支持IPC容器
BREAKING CHANGE:
支持ipc容器及增强对外变更:
1.clone 支持CLONE_NEWIPC
2.增加”/proc/[pid]/container/ipc" 用于查询容器信息
Close #I6AVMY
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I6a3c248d2d66a5342994c6e0b0aecddea8e32c72
|
2023-01-18 10:59:25 +08:00 |
zhushengle
|
e2d903b663
|
feat: 支持mnt容器及增强能力
BREAKING CHANGE:
支持mnt容器及增强对外变更:
1.clone 支持CLONE_NEWNS
2.增加”/proc/[pid]/container/mnt" 用于查询容器信息
3.新增chroot接口
Close #I6APW2
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I5e8843a0f59bb5b0e6a66a6810dc552e8184a03e
|
2023-01-16 21:00:17 +08:00 |
zhushengle
|
41619f004d
|
feat: 支持进程挂载目录和进程命名空间增强
BREAKING CHANGE:
支持进程挂载目录和进程命名空间增强对外变更:
1.支持进程挂载目录,在/proc下可以看到进程挂载目录
2.支持pid容器和uts容器信息查询
Close #I6AEVV
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I6777889552d77e49da81249063f9f3db0af96f34
|
2023-01-14 15:36:11 +08:00 |
zhushengle
|
6c8735cb9e
|
feat: 支持uts容器
BREAKING CHANGE:
支持uts容器对外变更:
支持sethostname
Close #I6A7C8
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I2504f77c37bb4149861673c81688bd112563c24b
|
2023-01-12 16:42:11 +08:00 |
zhushengle
|
20782299ce
|
feat: 支持pid容器
BREAKING CHANGE:
支持pid容器对外变更描述:
1.支持pid容器,使用clone(CLONE_NEWPID)创建
2.shell命令 task -a 不再显示线程信息,只显示系统所有进程信息
3.task命令新增参数-p, task -p pid 可查看改进程下的所有线程信息
4.使用LOS_TaskCreateOnly创建任务时, TSK_INIT_PARAM_S中的processID由原来的记录进程ID修改为记录进程控制块PCB
Close #I68LVW
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I0895da9099cb285b3195af5e383d0fdeaf5c0087
Change-Id: I46a7642eeee73a4531c241e3ba6290dd302600a7
|
2023-01-11 11:13:34 +08:00 |
Haryslee
|
7fef6ac8d9
|
fix: newlib for liteos_a and clip for liteos_a_mini
close #I53VW6
Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: I591b4ffaeb220311b63bd95f19400e0b9fde3c45
|
2022-04-29 14:12:29 +08:00 |
arvinzzz
|
d205cfa65a
|
fix: 进程退出后获取其调度参数有问题
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I0e98fef07e4919a5fbb051899ecb45a224225f91
|
2022-04-26 18:35:19 +08:00 |
zhushengle
|
eddcb840d3
|
feat: 支持调度框架
Close #I4Z3BL
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I5f32d1001ffabc0f725ce65b51ed9b3791e97f2b
|
2022-03-30 15:54:47 +08:00 |
zhushengle
|
65d5526c70
|
fix: 修复类型不匹配问题
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I31e16c9716de1223db7e4de916af3e010ca5f4e4
|
2022-03-24 11:24:34 +08:00 |
zhushengle
|
216c124854
|
fix: 编码规范修复
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Idddb6f081546d880560d075395079d95e4112599
|
2022-03-21 20:47:46 +08:00 |
openharmony_ci
|
cb67dd5498
|
!834 feat: swtmr机制与调度分离,调度只针对通用线程,不针对特殊功能
Merge pull request !834 from zhushengle/swtmr
|
2022-03-19 07:59:45 +00: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 |
arvinzzz
|
47fac7158e
|
fix: 内源检视问题修复
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I7c0b8f4026d8fbd4b0d985d4ce82187e56f1d6ec
|
2022-03-18 16:06:23 +08:00 |
openharmony_ci
|
e4cad073a9
|
!835 fix: 修复任务部分接口防护
Merge pull request !835 from zhushengle/task
|
2022-03-16 12:22:41 +00:00 |
zhushengle
|
b151fa6b65
|
fix: 修复任务部分接口防护
1.LosTaskDelete接口未对锁调度做检查
2.LOS_SetTaskScheduler未校验任务有效性
3.LOS_TaskJoin未对系统任务做校验
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I2c0a83ed5825706f3fa2609574e9e440a0d8eb1f
|
2022-03-16 19:51:18 +08:00 |
zhushengle
|
0f38ecb863
|
fix: 修复部分内核态测试用例
1.修复删除任务后调度不及时的问题
2.修复部分内核态测试用例
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I4cb29f6a7dce96bfdad68e0d89a004b5f5e33036
|
2022-03-16 17:16:55 +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
|
913d22bf83
|
!822 A核内源代码检视问题修改
Merge pull request !822 from wangchen/0308_a
|
2022-03-09 03:29:42 +00:00 |
wangchen
|
3824d1e9e4
|
【背景】内源代码检视问题
【修改方案】
1,按检视意见,进行资源泄露等问题的修改
【影响】
对现有的产品编译不会有影响。
re #I4WV56
Signed-off-by: wangchen <wangchen64@huawei.com>
|
2022-03-08 09:45:17 +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 |
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 |
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 |
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 |
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 |
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 |
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
|
0f0e85b7a6
|
fix: 非当前进程销毁时,销毁liteipc时错误的销毁了当前进程的liteipc资源
Close #I4FSA7
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I8b24a1e1554b4b867a841bc1b6765cbfd648cdbd
|
2021-10-28 17:30:54 +08:00 |
openharmony_ci
|
2f6cd46372
|
!664 feat: 支持LOS_TaskJoin 和 LOS_TaskDetach
Merge pull request !664 from zhushengle/Join
|
2021-10-28 08:01:08 +00:00 |
zhushengle
|
cf8446c941
|
feat: 进程rlimit修改为动态分配,减少静态内存占用
Close #I4EZY5
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I47ed0ff7a52f72e38875c3308b20e183cc5c4563
|
2021-10-22 11:55:52 +08:00 |
zhushengle
|
37bc11fa88
|
feat: 支持LOS_TaskJoin 和 LOS_TaskDetach
Close #I4EENF
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Iaa1582f567eb3524262bea383e0b8238b89b5fe2
|
2021-10-19 14:26:10 +08:00 |
zhushengle
|
298ccea3fe
|
fix: 进程退出前自己回收vmspace中的所有region
背景:
父进程fork一个子进程,调用waitpid等待子进程结束。
子进程dlopen一个文件a.so,并退出。当守护进程正在
1核回收子进程资源时,父进程在0核运行从waitpid返
回后,同时remove a.so概率失败。
Close #I4CKQC
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ie7940e7c931ced10ee357cf9aa7c64355effed49
|
2021-10-09 12:14:45 +08:00 |
lnlan
|
c3facd1b95
|
fix: 修复sigwait等待到的信号值与获取的siginfo中的值不一致
【背景】
集成测试发送两个不同的信号,sigwait第二次等到的仍是第一个信号
经定位,信号在kill时会将相关的siginfo信息拷贝到taskcb的unbinfo中,sigwait
处理时从unbinfo拷贝给用户。若此信号发送时处于屏蔽状态,再有其他信号发送会覆盖
掉unbinfo,此时sigwait等待这个信号获取到的info已经被覆盖
【修改方案】
1. 每个任务添加一个siginfo缓存链表,在处理信号前夕从缓存链表取出info到unbinfo中
【影响】
对现有的产品编译不会有影响。
re #I3M12H
Signed-off-by: lanleinan <lanleinan@163.com>
Change-Id: If4b064c18773f8eca7419c665977260167b09810
|
2021-09-10 03:21:58 +00: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 |
openharmony_ci
|
8839fdd399
|
!544 fix killpg and waitid
Merge pull request !544 from wangjianjun/waitid
|
2021-08-27 07:48:25 +00:00 |
openharmony_ci
|
40297a6dbc
|
!487 多核启动及内存映射解耦
Merge pull request !487 from JerryH/smp-xxx
|
2021-08-20 03:54:23 +00:00 |
wjj
|
dc3cc094a7
|
feat: 支持killpg和waitid
killpg:给进程组发信号
waitid:等待进程结束
修改测试用例到full里面
Change-Id: Ice058ab4a6eede8ecbaacea0894c2161e3b9dce2
Signed-off-by: wjj <502004968@qq.com>
|
2021-08-12 18:06:55 +08:00 |
openharmony_ci
|
0f4d5a4b0c
|
!287 feat(vfs): vfs支持FD_CLOEXEC标记
Merge pull request !287 from MGY917/master
|
2021-08-12 00:36:19 +00:00 |
Guangyao Ma
|
27dca4d857
|
feat(vfs): vfs支持FD_CLOEXEC标记
首先,POSIX规范规定文件描述符需要支持close-on-exec属性,修改前的vfs不支持close-on-exec,当exec系列函数执行时,进程所有的文件将会被关闭(0,1,2也重新被打开)。但是,系统有些时候是不能在exec时关闭全部文件的,例如在执行exec之前,就需要重定向进程的某些文件描述符时(使用dup2),就希望该文件不被关闭,继续保持重定向属性,shell执行进程并重定向其标准输出到文件,这是我们经常做的事情。
BREAKING CHANGE:
执行exec类函数后,进程拥有的文件描述符情况发生变化:修改前,默认关闭所有的进程文件描述符,0,1,2重新打开;修改后,除非文件描述符拥有FD_CLOEXEC标记,否则该描述符不会被关闭。
re #I3U81W
Change-Id: I54e841ac88e9835ec23e97de0cbc906c4e11f5a4
Signed-off-by: Guangyao Ma <guangyao.ma@outlook.com>
|
2021-08-11 15:35:46 +08:00 |
openharmony_ci
|
e64ee0f4e6
|
!518 fix: tick 动态化计算优化,消除中断执行时间对系统总体时间的影响,保证软件定时器的响应精度。
Merge pull request !518 from zhushengle/sched_tick
|
2021-08-11 03:19:48 +00:00 |