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
Caoruihong
e1b9a6b185
chore(make): update Makefile
...
remove some unused Makefile code and optimize some code
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I1c31d07481bb6aee47b0c51d63d6b68316c38c88
2021-08-17 21:34:01 +08:00
zhushengle
67ac8c4c58
fix: 以g_sysSchedStartTime是否为0判断时间轴是否生效存在极限场景导致调度时间不生效
...
初始化调度时间不以g_sysSchedStartTime是否为0为界限,而以g_sysSchedStartTime是否为64位最大值
为界限,避免特殊以下场景:调度开启时系统时间为0,导致初始化的g_sysSchedStartTime还是0,导致
调度启动后获取的调度时间轴始终为0.
Close #I45HP5
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I5272c79f06b53361ee7b931081d3a3276db59073
2021-08-14 13:04:08 +08: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
openharmony_ci
d6e0d3ee7d
!527 fix:合并进程栈两个地址连续的region
...
Merge pull request !527 from Harylee/dyn
2021-08-11 09:28:39 +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
openharmony_ci
51da89a3fb
!532 fix: 修改DoNanoSleep 以纳秒为单位
...
Merge pull request !532 from zhushengle/sleep
2021-08-10 11:37:44 +00:00
Haryslee
42f374dd7a
fix: 合并进程栈两个地址连续的region
...
背景:进程加载的时候,先预申请一个页用作参数拷贝,另外通过mmap方式申请
额外的虚拟栈空间,此时便有两个地址连续的区间。
方案:新增内部接口OsStackAlloc,用于申请一个连续的虚拟地址区间,并对其
中指定区间做物理内存的映射。
close #I43QYJ
Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: I224cca3671c42a94c2f74b2da5a11403849e33d3
2021-08-10 17:20:17 +08:00
zhushengle
6917e08431
fix: 修改DoNanoSleep 以纳秒为单位
...
DoNanoSleep 接口以微秒为单位,纳秒级别的在转换成微秒时被整除为0,
导致转换成tick时为0,导致延时时触发yield,导致延时时间超大
Close #I3Z9DP
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ib662fdc80707be6040b2bb06a1b457344bd48b30
2021-08-10 11:25:49 +08:00
openharmony_ci
007c75eb18
!496 修复mprotect修改地址区间的权限后,相应的区间名丢失问题
...
Merge pull request !496 from Harylee/mem
2021-08-10 00:05:02 +00:00
zhushengle
8df3e8c965
fix: tick 动态化计算优化,消除中断执行时间对系统总体时间的影响,保证软件定时器的响应精度。
...
方案描述:
1.周期软件定时器超时添加一个startTime字段,用于记录当前软件定时器的开始计时的时间,
在定时器响应时,开始时间修改为上一次响应的结束时间(消除了中断执行时间对软件定时器
的影响)。
2.在执行tick中断的过程当中,持有tick动态计算锁,保证在该过程中不会触发tick周期
的计算,在tick中断结束时统一计算设置。 --- 提升tick中断的执行效率
3.在设置tick周期时,减掉tick中断执行的时间,减小周期动态化带来的时间误差
4.新增LOSCFG_BASE_CORE_TICK_PER_SECOND_MINI配置宏,用于配置tick中断的最小响应精度
Close #I43UQJ
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Icd1159a1890046b13602b7a18dcd6234d5c61a89
2021-08-09 21:18:03 +08:00
zhushengle
53ced1a85e
fix: OsGerCurrSchedTimeCycle 函数存在拼写错误
...
Close #I446CX
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I49e80ffe1a7b579b82aaf45f599623b287eb8e98
2021-08-06 11:25:21 +08:00
JerryH
3bb3173604
fix: smp启动代码解耦及内存映射关系解耦
...
close #I41P8Y
Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: I01833cf617bbc695543a865dbb994c6c22d4a0a8
2021-08-05 16:03:43 +08:00
Haryslee
e425187d17
fix: 修复mprotect修改地址区间的权限后,相应的区间名丢失问题
...
背景:对于mmap映射的区间,修改权限后对应的区间名丢失
方案:mprotect修改权限后,对应区间名继承原区间名
close #I43R40
Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: I969c93528cbecc2ded4e437e5aac8f82b8baa609
2021-08-03 20:40:41 +08:00
openharmony_ci
f85c27de59
!476 在内核提示No idle TCB时,增加打印当前系统任务信息,以方便问题定位。
...
Merge pull request !476 from zhangfanfan2/master
2021-07-31 09:19:41 +00:00
YOUR_NAME
11a9b00d43
fix: 在内核提示No idle TCB时,增加打印当前系统任务信息,以方便问题定位。
...
close: #I434UC
Signed-off-by: zff <zhangfanfan2@huawei.com>
Change-Id: If6cdb719412375c79356a50113a0efb45c8968f7
2021-07-30 12:52:31 +08:00
wcc
09d5bcc22d
Merge branch 'master' of gitee.com:openharmony/kernel_liteos_a into misc
2021-07-27 01:40:59 +00:00
openharmony_ci
8755dc9d35
!443 从Make编译切换到GN编译
...
Merge pull request !443 from Caoruihong/build_gn
2021-07-22 01:50:19 +00:00
Caoruihong
a8805a65aa
feat: add support for gn build system
...
add BUILD.gn for all kernel modules
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I018446427bf64615f2596d47862b219659b58b34
2021-07-21 15:52:40 +08:00
openharmony_ci
4adc15e630
!446 init进程收到子进程退出信号后,调用fork重新拉起进程,会导致系统卡死
...
Merge pull request !446 from zhangfanfan2/master
2021-07-21 07:39:31 +00:00
openharmony_ci
d9774e016e
!447 chore: fix function and variable name spell issues
...
Merge pull request !447 from kenneth/chore
2021-07-21 05:29:07 +00:00
kenneth
58d4366e1d
chore: fix function and variable name spell issues
...
fix some spell issues in files under folder kernel/base/core:
change Recyle to Recycle, ilde to idle and Porcess to Process
close #I3R28X
Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-07-21 08:52:18 +08:00
YOUR_NAME
35a2f3af33
fix: init进程收到子进程退出信号后,调用fork重新拉起进程,会导致系统卡死
...
问题原因:init进程执行信号时,线程栈底预留了部分空间给信号上下文使用,
从而导致处理信号时线程栈底比线程控制块里面记录的大,这样在fork的过程中内核
从init线程栈底copy线程上下文给新进程时,copy的不是实际运行的栈底,以致于
新进程的线程上下文不对,在实际运行时跑飞,引发系统卡死。
解决方案:在fork过程copy线程上下文时,判断是否预留了信号上下文空间,如果预留
了,则copy的栈底要基于预留后的栈底去copy线程上下文。
close: #I41HOY
Signed-off-by: zff <zhangfanfan2@huawei.com>
Change-Id: I61cb05183c78919730e3a68c1c85b72fa1decd16
2021-07-20 21:11:12 +08:00
JerryH1011
7a6e4c8155
fix:修复共享内存shmat和shmdt接口之间存在的死锁问题
...
close #I40QOM
Change-Id: Ib3783f5d6b1095bf2100ab024fe0235a64355823
Signed-off-by: JerryH1011 <huangjieliang@huawei.com>
2021-07-19 14:55:47 +08:00
wcc0
c9d69e2d1b
fix: add capability and amend smoke testcase
...
add setrlimit,gethostname,gethostid and capability
Change-Id: I0d5f23cb87ec2731fb79e7c5cfbe1ce109ac158a
2021-07-16 09:24:44 +08:00
openharmony_ci
d9ed4b4bf6
!427 fix: 修复lwip2.0 增强在futex中异常挂死问题
...
Merge pull request !427 from zhushengle/futex
2021-07-15 01:54:41 +00:00
qidechun
a195aac9fb
feat: add blackbox for liteos_a
...
1、在内核增加BlackBox核心框架,对外提供模块回调接口注册和故障处理接口。
2、增加默认的系统模块适配层,处理通用内核态和用户态故障日志抓取和保存。
3、BBOX特性默认关闭,若想使用此特性,请在内核配置文件中增加如下编译选项:
LOSCFG_BLACKBOX=y
LOSCFG_SAVE_EXCINFO=y
LOSCFG_SAVE_EXCINFO可以帮助抓取更多的故障日志。
4、若已经打开BBOX特性,想快速验证此特性,请添加如下编译选项:
LOSCFG_HIDUMPER=y
Close #I406NP
Signed-off-by: qidechun <qidechun@huawei.com>
2021-07-14 09:37:35 +08:00
zhushengle
1157c4a289
fix : futex requeue机制中,头节点的queueList 为NULL, 导致系统异常
...
queuelist中的普通节点在调整为futexList的节点时,
未校验其queueList的有效性,导致queueList未初始化,
出现访问空指针;且在从旧链表迁移节点到新链表时,
节点从旧链表删除之后又插入到另一个链表中,导致对
旧链表的为NULL判断出错。
Close #I4024F
Change-Id: I506a10fc5740ce16e682c2c419b9d92a82000b86
Signed-off-by: zhushengle <zhushengle@huawei.com>
2021-07-14 09:30:49 +08:00
openharmony_ci
d7387508e3
!402 消除编译告警
...
Merge pull request !402 from x_xiny/master
2021-07-09 08:37:20 +00:00
x_xiny
e4ff04586f
fix:消除编译告警
...
【背景】
消除编译告警
【修改方案】
消除编译告警
re #I3ZC1R
Change-Id: I594d0f57e4cbbdb246a6bef1c978a38228123a34
Signed-off-by: x-xiny <1301913191@qq.com>
Change-Id: I1d75cdcdcf9d06ec28e541cdfea77300da7c6bb1
2021-07-08 20:30:33 +08:00
openharmony_ci
78906f4a6c
!406 修正最小编译时的错误
...
Merge pull request !406 from Caoruihong/qemu_mini
2021-07-07 08:29:28 +00:00
Denny
55e5e29005
回退 'Pull Request !401 : 【DFX子系统】【BBoxDetector】LiteOS_A死机重启维测框架'
2021-07-07 10:29:43 +08:00
Caoruihong
ac8c2c6d5b
fix: minimal compile
...
fix compile errors in minimal compilation
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I48f4f7b27c684e2c747c1949776c5c4f9e383dec
2021-07-07 00:26:33 +08:00
qidechun
425975e481
feat: add blackbox for liteos_a
...
1、在内核增加BlackBox核心框架,对外提供模块回调接口注册和故障处理接口。
2、增加默认的系统模块适配层,处理通用内核态和用户态故障日志抓取和保存。
Close #I3NN7V
Signed-off-by: qidechun <qidechun@huawei.com>
2021-07-06 07:49:59 +08:00
openharmony_ci
003810284c
!384 对内核中menuconfig开关的宏使用#ifdef/#ifndef来做预编译判断
...
Merge pull request !384 from boxi/upload
2021-07-01 07:11:13 +00:00
boxi
4e4f2d6d7e
refactor: 对LiteOS_a内核中menuconfig开关的宏使用#ifdef/#ifndef做预编译处理
...
LiteOS_a中有部分配置宏进行了重复冗余定义,导致当头文件未被包含时,极易引入错误,
故对menuconfig配置宏进行统一处理,均使用#ifdef/#ifndef作为预编译判断方式
Close #I3YEGS
Change-Id: Ife6db770cc66de1d6199a4f3ba3950e9bfd0e71a
Signed-off-by: boxi <lewis.liulei@huawei.com>
2021-07-01 09:08:18 +08:00
zhushengle
7de43bb004
fix: 修复kill进程时,因liteipc阻塞的进程概率无法退出问题
...
kill进程时,会将因为liteipc阻塞的线程唤醒,使其调度并自动退出,由于liteipc阻塞机制为
循环阻塞方式,会导致将因liteipc阻塞的线程唤醒后又进入等待中。此处在唤醒因liteipc阻塞的
线程后检查是否已有kill标志,如果有使其按接收数据失败退出,在返回用户态之前,该线程会进
入退出流程,结束运行。
Close #I3XX7K
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Iec4e298dff4aefd2994289067a35cb5673e323f9
2021-06-26 17:08:48 +08:00
openharmony_ci
a28dcc38c9
!360 增加清除文件系统缓存的维测接口
...
Merge pull request !360 from 野生毛霉君/master
2021-06-24 07:34:45 +00:00
mucor
3d1cf683f3
feat: add clear cache cmd to /proc/fs_cache
...
write "clear pathcahe" to clear pathcaches and vnodes
write "clear pagecache" to clear pagecaches
write "clear all" to clear both pathcaches and pagechaches
the cache in use will not be cleared
close: #I3XLPH
Signed-off-by: mucor <mucorwang@gmail.com>
2021-06-24 15:11:50 +08:00
openharmony_ci
b8e18ffdf1
!323 fix: 修复内核堆完整性检查逻辑中访问非法指针导致系统异常问题。
...
Merge pull request !323 from Harylee/mem
2021-06-24 06:45:45 +00:00
chenwei
600dded31e
feat: add /proc/fd file to dump the pid/fd/path information
...
1, for users with privilege, display all users' fd info with the template "Pid Fd SysFd Path"
2, for normal user, display its own fd info with the template "Pid Fd Path"
close #I3WB5U
Signed-off-by: chenwei <chenwei26@huawei.com>
2021-06-22 17:27:25 +08:00
mucor
231cb6be27
feat: add /proc/fs_cache to display cache info
...
add /proc/fs_cache to display vnode, path cache, page cache.
also change some bad virable name
close: #I3WWBD
Signed-off-by: mucor <mucorwang@gmail.com>
2021-06-22 14:53:17 +08:00
Haryslee
30f5ab89b7
fix: 修复内核堆完整性检查逻辑中访问非法指针导致系统异常问题。
...
内存完整性校验原有逻辑中当检测到非零异常指针后仍继续访问异常指针
next的内存域导致系统异常。
本次修改后的逻辑为:检测到非零异常指针后直接退出循环,将异常指针
的相关信息输出即可,增加了goto逻辑。对原有功能逻辑无影响。
close #I3VJZT
Change-Id: I5be06a552cf9fd74d8bd78f5cdf04db06eab4f76
Signed-off-by: Haryslee <lihao189@huawei.com>
2021-06-22 09:54:31 +08:00
SimonLi
2f3d7efc24
回退 'Pull Request !342 : 增加/proc/fs_cache来显示文件系统缓存维测信息'
2021-06-21 21:33:52 +08:00
mucor
53c6d96c6f
feat: add /proc/fs_cache to display cache info
...
add /proc/fs_cache to display vnode, path cache, page cache.
also change some bad virable name
close: #I3WESD
Signed-off-by: mucor <mucorwang@gmail.com>
2021-06-21 16:11:06 +08:00
mucor
73a777777e
fix: remove redundant headfile
...
1.remove redundant headfile in kernel, such as:
compiler.h;debug.h;automount.h;inode.h;syslog.h;net.h;
2.split fs.h to file.h and driver.h
3.move vnode.h and path_cache.h to vfs/include
4.remove redundant interface and defines
close: #I3RTNR
Signed-off-by: mucor <mucorwang@gmail.com>
2021-06-19 17:32:47 +08:00