1. 02 11月, 2021 1 次提交
  2. 29 10月, 2021 1 次提交
  3. 28 10月, 2021 1 次提交
  4. 22 10月, 2021 1 次提交
  5. 19 10月, 2021 1 次提交
  6. 11 10月, 2021 1 次提交
    • L
      fix: 修复PR520缺陷 · 40338918
      lnlan 提交于
      【背景】
      https://gitee.com/openharmony/kernel_liteos_a/pulls/520
      上面修改,信号处理时才会释放申请的内存,当信号被屏蔽,且一直发送该信号时,
      内存占用会不断变大
      【修改方案】
      1.
      信号发送时已经有该信号的siginfo在链表中时,不再重新申请,重复使用之前的siginfo.
      
      【影响】
      对现有的产品编译不会有影响。
      
      re#I4DEG5
      Signed-off-by: Nlanleinan <lanleinan@163.com>
      
      Change-Id: I74b3b7ff0b9efb0179313af9a0c8d1e12d1db5bb
      40338918
  7. 10 10月, 2021 1 次提交
  8. 09 10月, 2021 1 次提交
  9. 30 9月, 2021 1 次提交
  10. 28 9月, 2021 1 次提交
    • L
      feat: L0-L1 支持Perf · 6e0a3f10
      LiteOS2021 提交于
          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: NLiteOS2021 <dinglu@huawei.com>
      Change-Id: Ieb9b7483c85d1495df7c55bc0027f4309dff9814
      6e0a3f10
  11. 27 9月, 2021 1 次提交
  12. 23 9月, 2021 1 次提交
    • H
      fix: 共享内存问题修复 · 9fdb80f8
      Haryslee 提交于
      Signed-off-by: NHaryslee <lihao189@huawei.com>
      背景:父进程移除共享内存并标记SHM_SEG_REMOVE,当子进程资源回收时在
      ShmFindSeg接口中判断该共享内存具有SHM_SEG_REMOVE时返回空,但是此时
      seg->ds.shm_nattch不为0,不应返回空。
      方案:ShmFindSeg接口中增加seg->ds.shm_nattch为0的判断。
      
      close #I47X2Z
      
      Change-Id: I8735cd11ac237b17fa745c50313da0fd0649bb9f
      9fdb80f8
  13. 14 9月, 2021 1 次提交
  14. 13 9月, 2021 1 次提交
  15. 10 9月, 2021 1 次提交
    • L
      fix: 修复sigwait等待到的信号值与获取的siginfo中的值不一致 · c3facd1b
      lnlan 提交于
      【背景】
      集成测试发送两个不同的信号,sigwait第二次等到的仍是第一个信号
      经定位,信号在kill时会将相关的siginfo信息拷贝到taskcb的unbinfo中,sigwait
      处理时从unbinfo拷贝给用户。若此信号发送时处于屏蔽状态,再有其他信号发送会覆盖
      掉unbinfo,此时sigwait等待这个信号获取到的info已经被覆盖
      【修改方案】
      1. 每个任务添加一个siginfo缓存链表,在处理信号前夕从缓存链表取出info到unbinfo中
      
      【影响】
      对现有的产品编译不会有影响。
      
      re #I3M12H
      Signed-off-by: Nlanleinan <lanleinan@163.com>
      
      Change-Id: If4b064c18773f8eca7419c665977260167b09810
      c3facd1b
  16. 08 9月, 2021 1 次提交
    • A
      refactor: 内核目录结构整理 · 33d0c1bd
      arvinzzz 提交于
      1. 原kernel/common目录下属于内核拓展组件,统一移入kernel/extend管理
      2. Kconfig分层,各模块自己的配置放到自己目录下管理
      3. 原platform下不属于平台的公共代码抽到kernel/common下,只留板级链接脚本和一些编译脚本指向device目录下触发平台相关的编译
      4. 对外公共头文件统一抽到对外include路径
      5. 废弃宏,头文件清理
      
      close: #I48KI4
      Signed-off-by: Narvinzzz <zhaotianyu9@huawei.com>
      Change-Id: I0cf5ea81c92a8fa7b113da9cbdc8b7bc935f5aae
      33d0c1bd
  17. 31 8月, 2021 1 次提交
    • L
      feat: L0-L1 支持Trace · dc9ec685
      LiteOS2021 提交于
              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: NLiteOS2021 <dinglu@huawei.com>
      
      Change-Id: I6a8e64794c4852f2c2980993a06180e09ec6ee0d
      dc9ec685
  18. 26 8月, 2021 1 次提交
    • G
      fix: solve SIGCHLD ignored in sigsuspend() · 5a80d4e1
      Guangyao Ma 提交于
      在如下场景signal可能得不到及时处理:
      1、进程A设置信号a阻塞
      2、进程A收到信号a
      3、进程A调用sigsuspend结束阻塞
      原则上,步骤三应该立刻处理之前被阻塞的信号a,调用信号处理函数,并且sigsuspend
      返回。现在的问题是,信号a没有得到及时处理,并且进程A阻塞在sigsuspend()调用流程
      。
      本次修改,在1、2、3场景下,sigsuspend()处理过程中,如果发现已经收到信号,待处理
      时,会立刻进行调度切换,再次调度回来时,在调度模块中,会先主动处理已经收到的信
      号,最后sigsuspend返回用户态。
      
      close #I47CKK
      Signed-off-by: NGuangyao Ma <guangyao.ma@outlook.com>
      Change-Id: I1b30a938a2d18c3f58989d40eee0503ceffb27b5
      5a80d4e1
  19. 17 8月, 2021 1 次提交
  20. 14 8月, 2021 1 次提交
  21. 12 8月, 2021 1 次提交
    • W
      feat: 支持killpg和waitid · dc3cc094
      wjj 提交于
      killpg:给进程组发信号
      waitid:等待进程结束
      修改测试用例到full里面
      
      Change-Id: Ice058ab4a6eede8ecbaacea0894c2161e3b9dce2
      Signed-off-by: Nwjj <502004968@qq.com>
      dc3cc094
  22. 11 8月, 2021 1 次提交
    • G
      feat(vfs): vfs支持FD_CLOEXEC标记 · 27dca4d8
      Guangyao Ma 提交于
      首先,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: NGuangyao Ma <guangyao.ma@outlook.com>
      27dca4d8
  23. 10 8月, 2021 2 次提交
    • H
      fix: 合并进程栈两个地址连续的region · 42f374dd
      Haryslee 提交于
      背景:进程加载的时候,先预申请一个页用作参数拷贝,另外通过mmap方式申请
      额外的虚拟栈空间,此时便有两个地址连续的区间。
      方案:新增内部接口OsStackAlloc,用于申请一个连续的虚拟地址区间,并对其
      中指定区间做物理内存的映射。
      
      close #I43QYJ
      Signed-off-by: NHaryslee <lihao189@huawei.com>
      Change-Id: I224cca3671c42a94c2f74b2da5a11403849e33d3
      42f374dd
    • Z
      fix: 修改DoNanoSleep 以纳秒为单位 · 6917e084
      zhushengle 提交于
         DoNanoSleep 接口以微秒为单位,纳秒级别的在转换成微秒时被整除为0,
      导致转换成tick时为0,导致延时时触发yield,导致延时时间超大
      Close #I3Z9DP
      Signed-off-by: Nzhushengle <zhushengle@huawei.com>
      Change-Id: Ib662fdc80707be6040b2bb06a1b457344bd48b30
      6917e084
  24. 09 8月, 2021 1 次提交
    • Z
      fix: tick 动态化计算优化,消除中断执行时间对系统总体时间的影响,保证软件定时器的响应精度。 · 8df3e8c9
      zhushengle 提交于
      方案描述:
          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: Nzhushengle <zhushengle@huawei.com>
      Change-Id: Icd1159a1890046b13602b7a18dcd6234d5c61a89
      8df3e8c9
  25. 06 8月, 2021 1 次提交
  26. 05 8月, 2021 1 次提交
  27. 03 8月, 2021 1 次提交
  28. 30 7月, 2021 1 次提交
  29. 21 7月, 2021 2 次提交
  30. 20 7月, 2021 1 次提交
    • Y
      fix: init进程收到子进程退出信号后,调用fork重新拉起进程,会导致系统卡死 · 35a2f3af
      YOUR_NAME 提交于
      问题原因:init进程执行信号时,线程栈底预留了部分空间给信号上下文使用,
      从而导致处理信号时线程栈底比线程控制块里面记录的大,这样在fork的过程中内核
      从init线程栈底copy线程上下文给新进程时,copy的不是实际运行的栈底,以致于
      新进程的线程上下文不对,在实际运行时跑飞,引发系统卡死。
      解决方案:在fork过程copy线程上下文时,判断是否预留了信号上下文空间,如果预留
      了,则copy的栈底要基于预留后的栈底去copy线程上下文。
      
      close: #I41HOY
      Signed-off-by: Nzff <zhangfanfan2@huawei.com>
      Change-Id: I61cb05183c78919730e3a68c1c85b72fa1decd16
      35a2f3af
  31. 19 7月, 2021 1 次提交
  32. 16 7月, 2021 1 次提交
  33. 14 7月, 2021 2 次提交
    • Q
      feat: add blackbox for liteos_a · a195aac9
      qidechun 提交于
      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: Nqidechun <qidechun@huawei.com>
      a195aac9
    • Z
      fix : futex requeue机制中,头节点的queueList 为NULL, 导致系统异常 · 1157c4a2
      zhushengle 提交于
          queuelist中的普通节点在调整为futexList的节点时,
      未校验其queueList的有效性,导致queueList未初始化,
      出现访问空指针;且在从旧链表迁移节点到新链表时,
      节点从旧链表删除之后又插入到另一个链表中,导致对
      旧链表的为NULL判断出错。
      
      Close #I4024F
      
      Change-Id: I506a10fc5740ce16e682c2c419b9d92a82000b86
      Signed-off-by: Nzhushengle <zhushengle@huawei.com>
      1157c4a2
  34. 08 7月, 2021 1 次提交
    • X
      fix:消除编译告警 · e4ff0458
      x_xiny 提交于
      【背景】
       消除编译告警
      
      【修改方案】
       消除编译告警
      
       re #I3ZC1R
      
       Change-Id: I594d0f57e4cbbdb246a6bef1c978a38228123a34
      Signed-off-by: Nx-xiny <1301913191@qq.com>
      
      Change-Id: I1d75cdcdcf9d06ec28e541cdfea77300da7c6bb1
      e4ff0458
  35. 07 7月, 2021 2 次提交
  36. 06 7月, 2021 1 次提交
    • Q
      feat: add blackbox for liteos_a · 425975e4
      qidechun 提交于
      1、在内核增加BlackBox核心框架,对外提供模块回调接口注册和故障处理接口。
      2、增加默认的系统模块适配层,处理通用内核态和用户态故障日志抓取和保存。
      
      Close #I3NN7V
      Signed-off-by: Nqidechun <qidechun@huawei.com>
      425975e4