【需求价值】:
丰富特性,支持部分低配置芯片的内存临时超过峰值的特定使用场景。
【需求描述】:
在低配置芯片的一些特定使用场景中,会临时运行一些高内存的任务,但是因为系统内存已经接近使用极限,高内存任务启动会失败。此时,期望临时杀掉一些低重要性任务来释放内存,保障临时运行高内存任务成功。运行高内存运行完毕后,可以再恢复被杀掉的低内存任务。
【方案描述】:
【配套文档】:
设计文档、会议讨论记录归档位置 https://gitee.com/rtos_yuan/lmk/tree/design/
【验收标准】:
11月16日会议遗留问题:
1、LOS_TASK_ATTR_JOINABLE和LOS_TASK_ATTR_LMK_KILLABLE二选一?还是可以支持逻辑与?
--> 可以进行逻辑与。posix、cmsis部分也使用到了LOS_TASK_ATTR_JOINABLE。LOS_TASK_ATTR_LMK_KILLABLE属于内核特性,不属于posix等标准内容,不需要修改posix、cmsis部分。
2、m核支持任务分组吗?
--> 内核不支持任务分组。配置可杀任务时,建议最好支持可配置的任务分组,支持可配置。
3、 任务如何退出?有些任务入口执行函数带while循环,有些任务不带while循环,任务退出的区别?
--> LOS_TaskDelete函数可以删除带while循环的任务。不带while循环的任务,也会调用LOS_TaskDelete函数自删除,如下代码:
LITE_OS_SEC_TEXT_INIT VOID OsTaskEntry(UINT32 taskID)
{
UINT32 retVal;
LosTaskCB *taskCB = OS_TCB_FROM_TID(taskID);
taskCB->joinRetval = (UINTPTR)taskCB->taskEntry(taskCB->arg);
retVal = LOS_TaskDelete(taskCB->taskID);
if (retVal != LOS_OK) {
PRINT_ERR("Delete Task[TID: %d] Failed!\n", taskCB->taskID);
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
feat: 低内存资源回收low memory killer
低内存资源回收特性,支持维护可杀低重要任务,当高内存任务申请不到足够内存时,临时释放低重要性的任务来释放内存来满足高内存任务正常运行;
当高内存任务退出运行时,自动恢复被杀的低重要性任务。设计文档归档位置 https://gitee.com/rtos_yuan/lmk/tree/design/
BREAKING CHANGE: 增加低内存资源回收注册相关接口LOS_LmkOpsNodeRegister、LOS_LmkOpsNodeUnregister和内存资源释放和任务恢复接口LOS_LmkTasksKill和LOS_LmkTasksRestore.
close #I4ID0M:低内存资源回收low memory killer
Signed-off-by: kenneth zhushangyuan@huawei.com
-----来自 commit ab886d8
登录 后才可以发表评论