- 21 3月, 2022 1 次提交
-
-
由 zhushengle 提交于
Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: Idddb6f081546d880560d075395079d95e4112599
-
- 19 3月, 2022 1 次提交
-
-
由 zhushengle 提交于
背景: 原调度机制与软件定时器实现混合,调度时间链表存在两个链表, 任务切换时需要遍历两个链表才可以获取到最终的tick响应时间。 软件定时作为一个独立的功能,不应该和调度强耦合,而且软件定时 器作为一个任务,某个软件定时器的响应时间应该是软件定时器任务的 响应时间,不应该直接做为tick中断的响应时间。 方案描述: 1.将软件定时器从调度分离,作为一个独立的机制,从调度角度看其就是一个任务 2.软件定时器从调度分离之后,其timelist遍历从tick中断移动至软件定时器任务中 3.优化软件定时器的均衡调度 优势: 1.将软件定时器与调度完全分离,使得调度功能单一化,便于后续其它调度算法的引入 2.优化tick中断,减小tick中断耗时 3.优化通过写队列唤醒软件定时器任务去执行软件定时器钩子为插队列,减少软件定时 器机制本身的耗时,提升软件定时器的实时性 4.优化软件定时器均衡调度,使得软件定时器均匀分布于多核,提升软件定时器的实时性 Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: I07c01f134e69c1d9b7061ddf5a231df1ee99b68e
-
- 14 3月, 2022 2 次提交
-
-
由 x_xiny 提交于
Signed-off-by: Nx_xiny <1301913191@qq.com> Change-Id: I1cc4897e5d37dd98696221f0cc70220cef45e7d4
-
由 x_xiny 提交于
【背景】3.1代码review问题修改 【修改方案】 根据检视意见对拼写错误进行修改 Signed-off-by: Nxuiny <xuxinyu6@huawei.com> Change-Id: I9fb982a8ba2052fa4d56e91eec33c96ab4035a90
-
- 07 3月, 2022 1 次提交
-
-
由 zhushengle 提交于
1.优化task 命令关中断时间较长的问题 2.优化hwi 命令,可以查看不同核的中断分布情况 3.丰富hiw 命令,统计每个中断在一定时间内的平均执行时间和最大执行时间 4.丰富swtmr 命令,在debug模式下支持查看各软件定时器的运行情况, 默认关闭 Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: I01cfe50c918da51f9de5b460e9eb91a863e1de36
-
- 27 1月, 2022 1 次提交
-
-
由 zhushengle 提交于
1.移动LosTaskCB 至los_sched_pri.h, 解决调度与task的依赖关系 2.调度去进程化 Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: Ibd3b618cee59f0b323e2b4fb14354c088b60b733
-
- 21 1月, 2022 1 次提交
-
-
由 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
-
- 18 1月, 2022 1 次提交
-
-
由 zhushengle 提交于
1.tick timer与调度进一步剥离 2.性能敏感函数内敛化 Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: Icf62f002fa57d452cdd23a4c7b5e6610e2785f8e
-
- 08 1月, 2022 1 次提交
-
-
由 Haryslee 提交于
背景:同一个进程的多个线程读写同一个PTE时,由于PTE无保护,存在竞态问题。 方案:新增spinlock保护PTE,包括大锁跟小锁。大锁:一个进程只有一个spinlock锁,多个线程 读写PTE时竞争一把锁,锁的内存占用小,但系统性能降低;小锁:每个页表持有一把spinlock, 由于锁是page结构体的一个字段,内存消耗较大,但是相对大锁性能较优。系统默认使用大锁,用 户可根据具体需要配置使用大锁还是小锁。 close #I2WARC Signed-off-by: NHaryslee <lihao189@huawei.com> Change-Id: I5612eeac1f65507160035eae16af61f285182eda
-
- 03 12月, 2021 1 次提交
-
-
由 kenneth 提交于
删除无用的头文件kernel\base\include\los_pmm.h fix #I4KN63 Signed-off-by: Nkenneth <zhushangyuan@huawei.com>
-
- 01 12月, 2021 1 次提交
-
-
由 zhushengle 提交于
在los_stat_pri.h中添加los_typedef.h Close #I4KEZ1 Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: I19f8b79f9f559e1324432280f123a911bf8caf27
-
- 29 11月, 2021 1 次提交
-
-
由 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>
-
- 27 11月, 2021 1 次提交
-
-
由 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
-
- 10 11月, 2021 1 次提交
-
-
由 kenneth 提交于
修复社区反馈问题Percpu结构体注释错误,排查下其他拼写错误。 close #I4GMLH Signed-off-by: Nkenneth <zhushangyuan@huawei.com>
-
- 02 11月, 2021 2 次提交
-
-
由 zhushengle 提交于
Close #I4GLNT Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: I7f3dd61bbf014fa157b1f9a0a089fd985fe188c2
-
由 zhushengle 提交于
Close #I4G4HP Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: I259c792365d9747f391c5bd275e77f04b83e0792
-
- 29 10月, 2021 1 次提交
-
-
由 zhushengle 提交于
LosTaskCB 中 字段waitFlag 用于专门记录任务被阻塞的原因,与ipcStatus 功能重复 Close #I4FVHK Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: Ie0998b987ba6e1db050596dec3b359e73ca47686
-
- 22 10月, 2021 1 次提交
-
-
由 zhushengle 提交于
Close #I4EZY5 Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: I47ed0ff7a52f72e38875c3308b20e183cc5c4563
-
- 19 10月, 2021 1 次提交
-
-
由 zhushengle 提交于
Close #I4EENF Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: Iaa1582f567eb3524262bea383e0b8238b89b5fe2
-
- 09 10月, 2021 1 次提交
-
-
由 zhushengle 提交于
背景: 父进程fork一个子进程,调用waitpid等待子进程结束。 子进程dlopen一个文件a.so,并退出。当守护进程正在 1核回收子进程资源时,父进程在0核运行从waitpid返 回后,同时remove a.so概率失败。 Close #I4CKQC Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: Ie7940e7c931ced10ee357cf9aa7c64355effed49
-
- 30 9月, 2021 1 次提交
-
-
由 Leon Chan 提交于
TEE需要借用TCB中的execFile来校验打开的文件,pagecache修改后,可执行程序在mmap之后,会被立即关闭,因此将execFile改为execVnode close: #I4CLL9 Signed-off-by: NLeon Chan <chenwei26@huawei.com>
-
- 28 9月, 2021 1 次提交
-
-
由 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
-
- 14 9月, 2021 1 次提交
-
-
由 Leon Chan 提交于
1, change the owner of page to vnode 2, save the file path in vnode close: #I44TBS Signed-off-by: NLeon Chan <chenwei26@huawei.com>
-
- 10 9月, 2021 1 次提交
-
-
由 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
-
- 31 8月, 2021 1 次提交
-
-
由 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
-
- 14 8月, 2021 1 次提交
-
-
由 zhushengle 提交于
初始化调度时间不以g_sysSchedStartTime是否为0为界限,而以g_sysSchedStartTime是否为64位最大值 为界限,避免特殊以下场景:调度开启时系统时间为0,导致初始化的g_sysSchedStartTime还是0,导致 调度启动后获取的调度时间轴始终为0. Close #I45HP5 Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: I5272c79f06b53361ee7b931081d3a3276db59073
-
- 12 8月, 2021 1 次提交
-
-
由 wjj 提交于
killpg:给进程组发信号 waitid:等待进程结束 修改测试用例到full里面 Change-Id: Ice058ab4a6eede8ecbaacea0894c2161e3b9dce2 Signed-off-by: Nwjj <502004968@qq.com>
-
- 10 8月, 2021 2 次提交
-
-
由 Haryslee 提交于
背景:进程加载的时候,先预申请一个页用作参数拷贝,另外通过mmap方式申请 额外的虚拟栈空间,此时便有两个地址连续的区间。 方案:新增内部接口OsStackAlloc,用于申请一个连续的虚拟地址区间,并对其 中指定区间做物理内存的映射。 close #I43QYJ Signed-off-by: NHaryslee <lihao189@huawei.com> Change-Id: I224cca3671c42a94c2f74b2da5a11403849e33d3
-
由 zhushengle 提交于
DoNanoSleep 接口以微秒为单位,纳秒级别的在转换成微秒时被整除为0, 导致转换成tick时为0,导致延时时触发yield,导致延时时间超大 Close #I3Z9DP Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: Ib662fdc80707be6040b2bb06a1b457344bd48b30
-
- 09 8月, 2021 1 次提交
-
-
由 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
-
- 06 8月, 2021 1 次提交
-
-
由 zhushengle 提交于
Close #I446CX Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: I49e80ffe1a7b579b82aaf45f599623b287eb8e98
-
- 05 8月, 2021 1 次提交
-
-
由 JerryH 提交于
close #I41P8Y Signed-off-by: NJerryH <huangjieliang@huawei.com> Change-Id: I01833cf617bbc695543a865dbb994c6c22d4a0a8
-
- 21 7月, 2021 1 次提交
-
-
由 kenneth 提交于
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: Nkenneth <zhushangyuan@huawei.com>
-
- 16 7月, 2021 1 次提交
-
-
由 wcc0 提交于
add setrlimit,gethostname,gethostid and capability Change-Id: I0d5f23cb87ec2731fb79e7c5cfbe1ce109ac158a
-
- 07 7月, 2021 1 次提交
-
-
由 Caoruihong 提交于
fix compile errors in minimal compilation Signed-off-by: NCaoruihong <crh.cao@huawei.com> Change-Id: I48f4f7b27c684e2c747c1949776c5c4f9e383dec
-
- 01 7月, 2021 1 次提交
-
-
由 boxi 提交于
LiteOS_a中有部分配置宏进行了重复冗余定义,导致当头文件未被包含时,极易引入错误, 故对menuconfig配置宏进行统一处理,均使用#ifdef/#ifndef作为预编译判断方式 Close #I3YEGS Change-Id: Ife6db770cc66de1d6199a4f3ba3950e9bfd0e71a Signed-off-by: Nboxi <lewis.liulei@huawei.com>
-
- 26 6月, 2021 1 次提交
-
-
由 zhushengle 提交于
kill进程时,会将因为liteipc阻塞的线程唤醒,使其调度并自动退出,由于liteipc阻塞机制为 循环阻塞方式,会导致将因liteipc阻塞的线程唤醒后又进入等待中。此处在唤醒因liteipc阻塞的 线程后检查是否已有kill标志,如果有使其按接收数据失败退出,在返回用户态之前,该线程会进 入退出流程,结束运行。 Close #I3XX7K Signed-off-by: Nzhushengle <zhushengle@huawei.com> Change-Id: Iec4e298dff4aefd2994289067a35cb5673e323f9
-
- 24 6月, 2021 1 次提交
-
-
由 mucor 提交于
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: Nmucor <mucorwang@gmail.com>
-
- 22 6月, 2021 1 次提交
-
-
由 mucor 提交于
add /proc/fs_cache to display vnode, path cache, page cache. also change some bad virable name close: #I3WWBD Signed-off-by: Nmucor <mucorwang@gmail.com>
-
- 21 6月, 2021 1 次提交
-
-
由 SimonLi 提交于
-