1. 23 2月, 2023 1 次提交
    • Z
      feat: 支持cgroups · b45cdbda
      zhushengle 提交于
      BREAKING CHANGE:
      支持cgroups对外变更:
      1.在proc目录下支持plimits目录,支持ipc, pid, memory, devices, sched控制器
      
      Close #I6GVPL
      Signed-off-by: Nzhushengle <zhushengle@huawei.com>
      Change-Id: Ib996e07bf148abce9e40290d6188b763b52e89bb
      b45cdbda
  2. 11 2月, 2023 1 次提交
  3. 09 2月, 2023 1 次提交
  4. 03 2月, 2023 1 次提交
  5. 30 1月, 2023 1 次提交
  6. 19 1月, 2023 1 次提交
    • Z
      feat: 支持time容器 · 16ed05e8
      zhushengle 提交于
      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: Nzhushengle <zhushengle@huawei.com>
      Change-Id: I54d79937ca608a10a4384f61e11c88757f833edf
      16ed05e8
  7. 18 1月, 2023 1 次提交
    • Z
      feat: 支持IPC容器 · 34814c58
      zhushengle 提交于
      BREAKING CHANGE:
      支持ipc容器及增强对外变更:
      1.clone 支持CLONE_NEWIPC
      2.增加”/proc/[pid]/container/ipc" 用于查询容器信息
      
      Close #I6AVMY
      Signed-off-by: Nzhushengle <zhushengle@huawei.com>
      Change-Id: I6a3c248d2d66a5342994c6e0b0aecddea8e32c72
      34814c58
  8. 16 1月, 2023 1 次提交
  9. 14 1月, 2023 1 次提交
  10. 12 1月, 2023 1 次提交
  11. 11 1月, 2023 1 次提交
    • Z
      feat: 支持pid容器 · 20782299
      zhushengle 提交于
      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: Nzhushengle <zhushengle@huawei.com>
      Change-Id: I0895da9099cb285b3195af5e383d0fdeaf5c0087
      
      Change-Id: I46a7642eeee73a4531c241e3ba6290dd302600a7
      20782299
  12. 15 10月, 2022 1 次提交
  13. 21 7月, 2022 1 次提交
    • Y
      fix: 拼写错误修正 · 99ea8d4e
      yinjiaming 提交于
      【背景】
      代码中存在拼写错误
      
      【修改方案】
      修改存在拼写错误的地方
      
      【影响】
      对现有的产品编译不会有影响。
      
      re #I5IA7P
      Signed-off-by: Nyinjiaming <yinjiaming@huawei.com>
      Change-Id: Idd5d7fc9705e5ec661596aa6533402e8d4a8a117
      99ea8d4e
  14. 29 4月, 2022 1 次提交
  15. 30 3月, 2022 1 次提交
  16. 26 3月, 2022 1 次提交
  17. 24 3月, 2022 1 次提交
  18. 21 3月, 2022 1 次提交
  19. 19 3月, 2022 1 次提交
    • Z
      feat: swtmr机制与调度分离,调度只针对通用线程,不针对特殊功能 · 6d8cef40
      zhushengle 提交于
      背景:
      原调度机制与软件定时器实现混合,调度时间链表存在两个链表,
      任务切换时需要遍历两个链表才可以获取到最终的tick响应时间。
      软件定时作为一个独立的功能,不应该和调度强耦合,而且软件定时
      器作为一个任务,某个软件定时器的响应时间应该是软件定时器任务的
      响应时间,不应该直接做为tick中断的响应时间。
      
      方案描述:
      1.将软件定时器从调度分离,作为一个独立的机制,从调度角度看其就是一个任务
      2.软件定时器从调度分离之后,其timelist遍历从tick中断移动至软件定时器任务中
      3.优化软件定时器的均衡调度
      
      优势:
      1.将软件定时器与调度完全分离,使得调度功能单一化,便于后续其它调度算法的引入
      2.优化tick中断,减小tick中断耗时
      3.优化通过写队列唤醒软件定时器任务去执行软件定时器钩子为插队列,减少软件定时
      器机制本身的耗时,提升软件定时器的实时性
      4.优化软件定时器均衡调度,使得软件定时器均匀分布于多核,提升软件定时器的实时性
      Signed-off-by: Nzhushengle <zhushengle@huawei.com>
      Change-Id: I07c01f134e69c1d9b7061ddf5a231df1ee99b68e
      6d8cef40
  20. 14 3月, 2022 2 次提交
  21. 07 3月, 2022 1 次提交
    • Z
      feat: 优化shell 命令 · f02d40d2
      zhushengle 提交于
        1.优化task 命令关中断时间较长的问题
        2.优化hwi 命令,可以查看不同核的中断分布情况
        3.丰富hiw 命令,统计每个中断在一定时间内的平均执行时间和最大执行时间
        4.丰富swtmr 命令,在debug模式下支持查看各软件定时器的运行情况, 默认关闭
      Signed-off-by: Nzhushengle <zhushengle@huawei.com>
      Change-Id: I01cfe50c918da51f9de5b460e9eb91a863e1de36
      f02d40d2
  22. 27 1月, 2022 1 次提交
  23. 21 1月, 2022 1 次提交
    • Z
      feat: 调度相关模块间依赖优化 · 0e3936c4
      zhushengle 提交于
      背景:
          调度、线程、软件定时器、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: Nzhushengle <zhushengle@huawei.com>
      Change-Id: Ia54dc1b8a4801a225a52e40555490c1dce0bd75e
      0e3936c4
  24. 18 1月, 2022 1 次提交
  25. 08 1月, 2022 1 次提交
    • H
      fix: MMU竞态问题修复 · 748e0d8f
      Haryslee 提交于
      背景:同一个进程的多个线程读写同一个PTE时,由于PTE无保护,存在竞态问题。
      方案:新增spinlock保护PTE,包括大锁跟小锁。大锁:一个进程只有一个spinlock锁,多个线程
      读写PTE时竞争一把锁,锁的内存占用小,但系统性能降低;小锁:每个页表持有一把spinlock,
      由于锁是page结构体的一个字段,内存消耗较大,但是相对大锁性能较优。系统默认使用大锁,用
      户可根据具体需要配置使用大锁还是小锁。
      
      close #I2WARC
      Signed-off-by: NHaryslee <lihao189@huawei.com>
      Change-Id: I5612eeac1f65507160035eae16af61f285182eda
      748e0d8f
  26. 03 12月, 2021 1 次提交
  27. 01 12月, 2021 1 次提交
  28. 29 11月, 2021 1 次提交
    • Z
      feat: 支持L1 低功耗框架 · 64e49aba
      zhushengle 提交于
      方案描述:
         和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: Nzhushengle <zhushengle@huawei.com>
      64e49aba
  29. 27 11月, 2021 1 次提交
    • L
      feat: L0~L1 支持Lms · e748fdbe
      LiteOS2021 提交于
      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: NLiteOS2021 <dinglu@huawei.com>
      Change-Id: Id8e5c890656da9edc4a22227e6a3c32205c024ce
      e748fdbe
  30. 10 11月, 2021 1 次提交
  31. 02 11月, 2021 2 次提交
  32. 29 10月, 2021 1 次提交
  33. 22 10月, 2021 1 次提交
  34. 19 10月, 2021 1 次提交
  35. 09 10月, 2021 1 次提交
  36. 30 9月, 2021 1 次提交
  37. 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
  38. 14 9月, 2021 1 次提交