openharmony_kernel_liteos_a/CHANGELOG.md

54 KiB
Raw Permalink Blame History

(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

BREAKING CHANGES

    1. 删除 LOS_CirBufLock()LOS_CirBufUnlock()内核对外接口
  1. 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的钩子
  1. 用户态新增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

  • Revert "fix: 修改默认窗口宽度到400" (1878849), closes #I42X9V

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类函数后进程拥有的文件描述符情况发生变化修改前默认关闭所有的进程文件描述符012重新打开修改后除非文件描述符拥有FD_CLOEXEC标记否则该描述符不会被关闭。