54 KiB
54 KiB
(2022-03-30)
Bug Fixes
- arm-virt: HW_RANDOM_ENABLE配置支持arm virt平台 (68f9f49)
- A核代码静态告警定期清理 (9ba725c), closes #I4I0O8
- change default permission of procfs to 0550 (a776c04), closes #I4NY49
- change the execFile field in TCB to execVnode (e4a0662), closes #I4CLL9
- close file when process interpretor failed (a375bf5), closes #I4ATQX
- codex 清理 (9ab3e35), closes #I4BL3S
- dyload open close failed (5e87d8c), closes #I452Z7
- fix ppoll (a55f68f)
- fix some function declarations (63fd8bc)
- implicit declaration of function 'syscall' in apps/shell (bd0c083)
- LOS_Panic和魔法键功能中的使用PRINTK打印,依赖任务调度,特殊情况下存在打印不出来的问题 (53addea), closes #I4NOC7
- los_stat_pri.h中缺少依赖的头文件 (2cd03c5), closes #I4KEZ1
- los_trace.h接口注释错误修正 (6d24961), closes #I4CYPZ
- MMU竞态问题修复 (748e0d8), closes #I2WARC
- mtd: 去除mtd对hisilicon驱动的依赖 (f7d010d), closes #I49FKL
- OsFutexWaitParamCheck函数中absTime为0时,直接返回,不需要打印 (3f71be7), closes #I4D67E
- OsLockDepCheckIn异常处理中存在g_lockdepAvailable锁嵌套调用, (bf030b6), closes #I457ZZ
- pr模板补充说明 (e3cd485)
- same file mode for procfs files (c79bcd0), closes #I4ACTC
- shell支持exit退出,完善帮助信息,特殊处理不可见字符 (cc6e112)
- smp初始化中副核冗余的启动框架调用 (5ce70a5), closes #I4F8A5
- solve SIGCHLD ignored in sigsuspend() (5a80d4e), closes #I47CKK
- syscall review bugfix (214f44e), closes #149
- test: misc09用例因依赖hosts文件而失败 (f2f5c5f), closes #I48IZ0
- test: 修复sys部分用例因依赖passwd、group文件而失败 (614cdcc), closes #I48IUC
- 中断中调用PRINTK概率卡死,导致系统不能正常响应中断 (9726ba1), closes #I4C9GC
- 临终遗言重定向内容缺失task相关信息,对应的shell命令中申请的内存需要cacheline对齐 (48ca854), closes #I482S5
- 优化liteipc任务状态,删除功能重复字段 (5004ef4), closes #I4FVHK
- 优化trace buffer初始化,删除swtmr 桩中的无效参数 (b551270), closes #I4DQ1X
- 修复 virpart.c 不适配的格式化打印问题 (de29140), closes #I4PEVP
- 修复A核文档失效的问题 (456d255), closes #I4U7TF
- 修复A核测试用例失败的问题 (59329ce), closes #I4SQDR
- 修复A核测试用例失败的问题 (be68dc8), closes #I4SQDP
- 修复dispatch单词拼写错误。 (9b07aec), closes #I4BLE8
- 修复futime提示错误22的BUG (f2861dd)
- 修复jffs2适配层错误释放锁的BUG (011a55f), closes #I4FH9M
- 修复los_vm_scan.c中内部函数OsInactiveListIsLow冗余代码 (bc32a1e), closes #I4HKFF
- 修复LOSCFG_FS_FAT_CACHE宏关闭后编译失败的BUG (63e71fe), closes #I3T3N0
- 修复OsVmPhysFreeListAdd和OsVmPhysFreeListAddUnsafe函数内容重复 (6827bd2), closes #I4FL95
- 修复PR520缺陷 (4033891), closes #I4DEG5
- 修复shcmd.h需要用宏包起来的问题 (6c4e4b1), closes #I4N50W
- 修复xts权限用例压测异常问题 (b0d31cb), closes #I3ZJ1D
- 修复硬随机不可用时,地址随机化不可用问题 (665c152), closes #I4D4TK
- 修复进程用例导致门禁概率失败 (1ed28b4), closes #I4FO0N
- 修复进程线程不稳定用例 (f6ac03d), closes #I4F1XL
- 修复重复执行内存用例导致系统卡死问题 (6c2b163), closes #I4F7PO
- 修改MMU模块的注释错误 (1a8e22d), closes #I4KMMJ
- 共享内存问题修复 (9fdb80f), closes #I47X2Z
- 内核ERR打印,无进程和线程信息,不方便问题定位。 (cb423f8), closes #I4DAKM
- 内核ERR级别及以上的打印输出当前进程和线程名 (540b201)
- 内源检视测试用例问题修复 (a6ac759)
- 删除冗余的头文件 (8e614bb), closes #I4KN63
- 增加pselect SYSCALL函数及测试用例 (f601c16), closes #I45SXU
- 增加内核epoll系统调用 (2251b8a), closes #I4FXPT
- 实现了musl库net模块中的一些函数接口和相应的测试用例 (3d00a7d), closes #I4JQI1
- 添加进程线程冒烟用例 (2be5968), closes #I4EOGA
- 用户态进程主线程退出时,其他子线程刚好进入异常处理流程会导致系统卡死 (d955790), closes #I4KGBT
- 编码规范修改 (d161a0b)
- 编码规范问题修复 (f60bc94)
- 编译框架在做编译入口的统一 (bdb9864), closes #I4KRQN
- 解决dmesg -s参数double lock问题 (e151256), closes #I4HIJK
- 进程退出前自己回收vmspace中的所有region (298ccea), closes #I4CKQC
- 通过g_uart_fputc_en关闭打印后,shell进程不能正常启动 (d21b05c), closes #I4CTY2
- 针对pr是否同步至release分支,增加原因说明规则 (b37a7b7)
- 非当前进程销毁时,销毁liteipc时错误的销毁了当前进程的liteipc资源 (0f0e85b), closes #I4FSA7
Code Refactoring
Features
- add option SIOCGIFBRDADDR for ioctl (4ecc473), closes #I4DNRF
- add sync() to vfs (f67c4da), closes #I480HV
- build: support gcc toolchain (6e886d4)
- L0-L1 支持Perf (6e0a3f1), closes #I47I9A
- L0~L1 支持Lms (e748fdb), closes #I4HYAV
- liteipc 静态内存优化 (5237924), closes #I4G4HP
- page cache backed by vnode instead of filep (38a6b80), closes #I44TBS
- 提供低功耗默认处理框架 (212d1bd), closes #I4KBG9
- 支持AT_RANDOM以增强用户态栈保护能力 (06ea037), closes #I4CB8M
- 支持L1 低功耗框架 (64e49ab), closes #I4JSOT
- 支持LOS_TaskJoin 和 LOS_TaskDetach (37bc11f), closes #I4EENF
- 新增解析异常和backtrace信息脚本 (7019fdf), closes #I47EVQ
- 调度tick响应时间计算优化 (f47da44)
- 调度去进程化,优化进程线程依赖关系 (dc479fb)
- 调度相关模块间依赖优化 (0e3936c), closes #I4RPRW
- 进程cpup占用率结构优化为动态分配 (f06e090), closes #I4GLNT
- 进程rlimit修改为动态分配,减少静态内存占用 (cf8446c), closes #I4EZY5
BREAKING CHANGES
-
- 删除 LOS_CirBufLock(),LOS_CirBufUnlock()内核对外接口
- LOS_CirBufWrite(),LOS_CirBufRead()由原先内部不进行上/解锁操作,变为默认已包含上/解锁操作。
- 新增支持API:
LOS_LmsCheckPoolAdd使能检测指定内存池 LOS_LmsCheckPoolDel不检测指定内存池 LOS_LmsAddrProtect为指定内存段上锁,不允许访问 LOS_LmsAddrDisableProtect去能指定内存段的访问保护
- 1.新增一系列perf的对外API,位于los_perf.h中. LOS_PerfInit配置采样数据缓冲区 LOS_PerfStart开启Perf采样 LOS_PerfStop停止Perf采样 LOS_PerfConfig配置Perf采样事件 LOS_PerfDataRead读取采样数据 LOS_PerfNotifyHookReg 注册采样数据缓冲区的钩子函数 LOS_PerfFlushHookReg 注册缓冲区刷cache的钩子
- 用户态新增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] -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.
(2021-09-30)
Bug Fixes
- A核代码告警清零 (698756d), closes #I4378T
- A核告警消除 (d16bfd0), closes #I46KF6
- 3518平台, 异常测试进程无法正常退出 (23937a2), closes #I3V8R5
- add (void) to GetFileMappingList method (56b8eca), closes #I3XPXY
- add capability and amend smoke testcase (c9d69e2)
- add fchdir api (e828cbd)
- add fchmod api (2f214bf)
- add fststfs api and unitest (4c57aa2)
- add product_path parameter for driver build (88fe4eb), closes #I3PQ10
- add syscall for ppoll & add 2 testcases (defedb6)
- avoid compile warning ignored (eca711b), closes #I3VOAO
- A核codex修改 (ec977a1), closes #I40B1S
- BBOX使用预留物理内存缓存故障日志 (2ad176e), closes #I41YIZ
- bootargs解析与rootfs挂载解耦,并支持自定义bootargs参数 (80473f0), closes #I41CL8
- build: clang10.0.1支持lto,去掉冗余判断 (73223ae)
- build: fix rootfsdir.sh target directory not exist (21bf2b8), closes #I3NHQ0
- build: 去除冗余单板相关的宏配置 (471de36)
- clang10 lld could not recognized Oz (87a0006)
- clang相关编译选项隔离 (77dcef4), closes #I444AV
- codex (101a55d)
- codex clean (b5370af), closes #I3UOFN
- compile error when fatfs disabled (fd3f407)
- console compile bug fix (f8441a0)
- correct spelling (c66fe03)
- Correctly handle the return value of LOS_EventRead in QuickstartListen. (0e0ab81), closes #I3PSLZ
- Ctrl-C move out of LOS_MAGIC_KEY_ENABLE (40f239a)
- Delete useless 'exc interaction' macros and function declarations. (d2f2679), closes #I3SDKY
- dereference NULL point bug fix (deaa564)
- do not build toybox temporarily (044f2c7)
- do not override existing libs (8118408)
- doc: 修复README_zh-HK.md的链接错误 (f1b4c87)
- fatfs memory leak (fbfd71d)
- fix function name OsSchedSetIdleTaskSchedParam (8f8c038)
- Fix kernel page fault exception handling causing system exception. (a89fb57), closes #I3RAN4
- fix length typo (12d98b1)
- fix mq function by enable mq_notify api (4427142)
- Fix quickstart codingstyle (2e011b6), closes #I3OPOM
- fix stored typo (d25560f)
- fix syscall faccessat,fstatfs,fstatat & add 6 testcases (aa1cd24)
- fix the inappropriate errno in FatFs (af61187), closes #I3O8IF
- fix typo in quickstart (3b2ff4b), closes #I3M1S8
- Fix wrong judgment in los_trace.c to avoid null pointer access. (4d863e9), closes #I3RT9F
- Identical condition 'ret<0', second condition is always false. 🐛 (1348809)
- init进程收到子进程退出信号后,调用fork重新拉起进程,会导致系统卡死 (35a2f3a), closes #I41HOY
- kernel crashed after rmdir the umounted folder (ac0d083)
- kernel crashed when delete a umounted folder (f305d1f)
- kernel crashed when delete a umounted folder (c6e9212)
- kernel_test: 内核mem/shm冒烟用例重复运行失败 (0676578), closes #I3TH4W
- L1 toybox 命令功能实现 (2ff44c4), closes #I41N2A
- liteipc max data size too small (4dc421e)
- LiteOS_A BBOX Codex整改 (6a5a032), closes #I43RQU
- Liteos-a创建的文件夹在Ubuntu中不可见 (a9fc1e0), closes #I3XMY6
- lookup new vnode may cause parent vnode freeing (902a11d), closes #I3MYP4
- mini: fix compile error in mini liteos_a (e13cb3b)
- minimal compile (ac8c2c6)
- misspell (08980ea)
- mkdir -p is more robust (e38f9a9)
- mksh compile bug fix (d8263b1), closes #I3ZMR7
- modify event API description (937734b)
- move nuttx head file back (4c8a86e), closes #I4443Q
- nanosleep 接口的rmtp参数被错误清零 (9458de9), closes #I41U0R
- no exception information output, when the system is abnormal (5bf4d1c)
- no exception information output, when the system is abnormal (28aa777)
- no exception information output, when the system is abnormal after holding (0ed8adf)
- Optimiz macro of quickstart cmd (cb140a4), closes #I3OSYT
- Optimize /dev/quickstart permissions. (4e24b57), closes #I3OYUQ
- Optimize quickstart node implementation (4abd2e0), closes #I3R8O8
- OsGerCurrSchedTimeCycle 函数存在拼写错误 (53ced1a), closes #I446CX
- OsGetArgsAddr声明所在头文件不正确 (14bd753), closes #I41MWM
- parent point of vnode found by VfsHashGet should be updated (f32caa5), closes #I3NNFA
- PathCacheFree try to free name field in struct PathCache (9f47faf), closes #I3NTH9
- PathCacheMemoryDump miscalculate the RAM usage of PathCache (87da7c7), closes #I3OBXY
- Provide a separate configuration macro for boot environment in RAM. (e28e06b)
- Provide a separate configuration macro for boot environment in RAM. (bc67393)
- Provide a separate configuration macro for boot environment in RAM. (f13b90e), closes #I3OADR
- race condition in liteipc (7e2aef2), closes #I3PW5Y
- rebuild mksh depends on rebuild.sh script (bef4ab9)
- remove redundant headfile (73a7777), closes #I3RTNR
- Remove redundant invalid codes (fe05df4), closes #I3R70T
- Show conflicting files for git apply or patch -p command (35f7957), closes #I3NNUS
- SIOCGIFCONF ioctl malloc size error in kernel (bfd27e7), closes #I3XEZ3
- smp启动代码解耦及内存映射关系解耦 (3bb3173), closes #I41P8Y
- some branch in format does not release the vnode mutex properly (9b2b700), closes #I3OFAY
- Sortlink, the response time to insert the node should be inserted into the back of the existing node. (1323874), closes #I3PSJ8
- statfs can't get f_bfree and f_bavail of a FAT12/FAT16 partition (9503c4a), closes #I3Q0VS
- SysOpenat返回值应该为进程fd,而非系统全局fd。 (3457c0b), closes #I3TNAK
- the total used vnode number not increased after unlink a file under (4f514a1), closes #I3TS1Y
- tick 动态化计算优化,消除中断执行时间对系统总体时间的影响,保证软件定时器的响应精度。 (8df3e8c), closes #I43UQJ
- toybox update (c3245b3)
- toybox命令升级 (76f45b3), closes #I41N2A
- update LOS_DL_LIST_IS_END comment (900269b)
- userfs分区的起始地址与大小改为通过bootargs配置 (2e2b142), closes #I3XNEY
- VnodeInUseIter and VnodeFreeAll used to be recursive (5f6656c), closes #I3NN3U
- 以g_sysSchedStartTime是否为0判断时间轴是否生效存在极限场景导致调度时间不生效 (67ac8c4), closes #I45HP5
- 修复FATFS中不同内部接口不支持FAT12/FAT16 FAT表结束标志 (33f5c70), closes #I409R6
- 修复kill进程时,因liteipc阻塞的进程概率无法退出问题 (7de43bb), closes #I3XX7K
- 修复MagicKey数组越界访问 (071cd62), closes #I3U4N9
- 修复mprotect修改地址区间的权限后,相应的区间名丢失问题 (e425187), closes #I43R40
- 修复mq_close关闭后仍然占用文件描述符的问题 (590c7b4), closes #I3ZQDA
- 修复mqueue问题 (26ee8b8), closes #I43P4T
- 修复sigwait等待到的信号值与获取的siginfo中的值不一致 (ed7defb), closes #I3M12H
- 修复了LOSCFG_FS_FAT_VIRTUAL_PARTITION宏开关错误作用域引起的功能错误 (acda419), closes #I3W1IW
- 修复了内核的VFAT测试用例 (a8384b5), closes #I3XF3R
- 修复内核access chmod chown接口 (56a95b9), closes #I3Z5L6
- 修复内核c库的makefile中被优化函数替换的高频函数依然参与了编译的问题 (6f6dc4f), closes #I3XGM8
- 修复内核堆完整性检查逻辑中访问非法指针导致系统异常问题。 (30f5ab8), closes #I3VJZT
- 修复启动框架debug模式下-Werror=maybe-uninitialized告警以及符号链接不进镜像的隐患 (4c02415), closes #I3T5HR
- 修复开机概率挂死 (2e82c36), closes #I3SWY2
- 修复文档链接失效问题 (42a3a6c), closes #I45297
- 修改/proc/mounts显示格式 (6860246), closes #I3XGCS
- 修改clock_gettime接口适配posix标准测试用例011输入clk_id错误时返回值ESRCH为EINVAL. (f8cf6e6), closes #I3OUHI
- 修改DoNanoSleep 以纳秒为单位 (6917e08), closes #I3Z9DP
- 修改某些平台保存bbox日志失败的问题 (8f6a1dd), closes #I41UTP
- 修改默认窗口宽度到400 (09c491c), closes #I40LQX
- 关闭jffs和fat后,rootfs配置也被相应关闭,导致nand介质的rootfs不可用。 (0ea476b), closes #I3SBYN
- 内核态在console初始化完成后,使用printf无法正常打印 (44ce696), closes #I3UG00
- 去掉冗余的strip操作 (7819d15), closes #I43767
- 合并进程栈两个地址连续的region (42f374d), closes #I43QYJ
- 在内核提示No idle TCB时,增加打印当前系统任务信息,以方便问题定位。 (11a9b00), closes #I434UC
- 增加表头,内容以制表符分栏。 (e9ad6b7), closes #I3W2M9
- 将用户态内存调测解析脚本移至tools目录下 (85b4cb7), closes #I42T9A
- 恢复了FATFS设置卷标的功能 (9515d53), closes #I3Y5G8
- 解决kill进程时无法保证进程的已持有的内核资源合理释放. (cf89f01), closes #I3S0N0
- 解决不同环境下计算的rootfs的size偏小,导致mcopy造成的disk full错误 (c54879b), closes #I3IA06
- 设置qemu默认userfs大小/修改qemu驱动目录 (1d952a2), closes #I3XW96
Features
- active mksh & toybox (cacb4f0), closes #I3VEOG
- Add /dev/quickstart to support synchronous communication between processes in user mode startup. (46b63f7), closes #I3OHO5
- add /proc/fd file to dump the pid/fd/path information (600dded), closes #I3WB5U
- add /proc/fs_cache to display cache info (231cb6b), closes #I3WWBD
- add /proc/fs_cache to display cache info (53c6d96), closes #I3WESD
- add and fix some syscall (ce849f2)
- add blackbox for liteos_a (a195aac), closes #I406NP
- add blackbox for liteos_a (425975e)
- add clear cache cmd to /proc/fs_cache (3d1cf68), closes #I3XLPH
- add liteos patch ability (98ca844)
- add support for gn build system (a8805a6)
- add uid/gid for ProcFs (6780659), closes #I3WGVP
- A核proc文件系统在echo模式下新增write的功能 (f10dd7c), closes #I3T6MZ
- build OHOS_Image from kernel (abf4d8f)
- build: make liteos_config_file available as gn argument (f9a9077)
- build: 使用xts -notest选项时,内核用例不参与编译构建和用例编译配置方式调整 (9bdf716)
- don't apply module_swith on configs of config (f3beb4b)
- enable gn build for toybox and mksh (c54bfa1)
- fatfs支持符号链接功能 (e50cf0b), closes #I3V8D1
- file system: add memory-based romfs (c4595d2), closes #I3S0CP
- introduce mksh toybox to rootfs (41c7689)
- L0-L1 支持Trace (dc9ec68), closes #I46WA0
- L1支持低功耗投票框架 (21d8ac8), closes #I3VS5N
- libc: upgrade optimized-routines to v21.02 (1ec8d5a)
- make: optimize makefiles and remove some unused files (0e26094)
- Open macro for ADC moudule (c71ec9d)
- QEMU_ARM_VIRT_CA7: 使能FAT文件系统编译选项 (49856dc)
- support .mkshrc (51a50c9), closes #I3Y5KE
- support link/symlink/readlink (6eddc86), closes #I3Q0OD
- support toybox in qemu (5618319), closes #I3V17D
- timer_create支持以SIGEV_THREAD方式创建定时器 (e5f6bf0), closes #I3SRFI
- using kconfiglib instead of kconfig (8784694)
- vfs support sdcard hotplug (2db80ec), closes #I44WH1
- vfs: vfs支持FD_CLOEXEC标记 (27dca4d), closes #I3U81W
- 删除zpfs冗余代码 (3393479)
- 基于汇编实现内核对用户态内存清零的功能 (9db3407), closes #I3XXT0
- 增加mount的MS_RDONLY标志的支持 (8729f6e), closes #I3Z1W6
- 支持killpg和waitid (dc3cc09)
- 新增toybox reboot命令 (e567a10), closes #I3YQ7S
- 给开发者提供系统信息导出Hidumper工具。 (cb17fa5)
- 自研shell命令回补 (7bc68f4), closes #I44U0H
Performance Improvements
- assign '-1' to uninitialized variable: ret (e0a27ba)
Reverts
BREAKING CHANGES
- 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注册过滤特定中断号事件的钩子函数
- vfs: 执行exec类函数后,进程拥有的文件描述符情况发生变化:修改前,默认关闭所有的进程文件描述符,0,1,2重新打开;修改后,除非文件描述符拥有FD_CLOEXEC标记,否则该描述符不会被关闭。