已合并
[9.1.0同步] capture model update adapt & fix: A5 update save arg handle #4004
yanan创建于 8月3日
[9.1.0同步] capture model update adapt & fix: A5 update save arg handle #4004
已合并
共 4 个文件变更+6-9
| @@ -1247,8 +1247,8 @@ aclError aclmdlRITaskSetParams(aclmdlRITask task, aclmdlRITaskParams* params) | |||
| 1247 | 1247 | ||
| 1248 | ### 约束说明 | 1248 | ### 约束说明 |
| 1249 | 1249 | ||
| 1250 | -对于同一个模型运行实例,本接口不支持并发调用。 | 1250 | +- 对于同一个模型运行实例,本接口不支持并发调用。 |
| 1251 | - | 1251 | +- 在更新任务参数信息时,用户需确保修改后的模型运行实例中各任务的依赖关系正确,否则可能会导致后续业务异常,例如模型执行异常。 |
| 1252 | 1252 | ||
| 1253 | <br> | 1253 | <br> |
| 1254 | <br> | 1254 | <br> |
| @@ -3536,7 +3536,7 @@ rtError_t Stream::UpdateAllPersistentTask() | |||
| 3536 | workTask->type, workTask->typeName); | 3536 | workTask->type, workTask->typeName); |
| 3537 | } | 3537 | } |
| 3538 | 3538 | ||
| 3539 | - if (totalSendSqeNum == 0U && parentCaptureStream_ != nullptr) { | 3539 | + if (totalSendSqeNum == 0U) { |
| 3540 | error = SendNopTask(Context_(), this); | 3540 | error = SendNopTask(Context_(), this); |
| 3541 | ERROR_RETURN(error, "construct nop failed, stream_id=%d.", streamId_); | 3541 | ERROR_RETURN(error, "construct nop failed, stream_id=%d.", streamId_); |
| 3542 | 3542 | ||
| @@ -1923,6 +1923,7 @@ rtError_t UpdateWriteValueTaskParams(TaskInfo* const taskInfo, rtTaskParams* con | |||
| 1923 | { | 1923 | { |
| 1924 | ERROR_RETURN(CheckUpdatingTaskParams(taskInfo, params), "task type or input params is invalid"); | 1924 | ERROR_RETURN(CheckUpdatingTaskParams(taskInfo, params), "task type or input params is invalid"); |
| 1925 | 1925 | ||
| 1926 | + BackupTaskArgHandle(taskInfo); | ||
| 1926 | TaskUnInitProc(taskInfo); | 1927 | TaskUnInitProc(taskInfo); |
| 1927 | (void)MemWriteValueTaskInit(taskInfo, params->valueWriteTaskParams.devAddr, params->valueWriteTaskParams.value); | 1928 | (void)MemWriteValueTaskInit(taskInfo, params->valueWriteTaskParams.devAddr, params->valueWriteTaskParams.value); |
| 1928 | taskInfo->u.memWriteValueTask.awSize = RT_STARS_WRITE_VALUE_SIZE_TYPE_64BIT; | 1929 | taskInfo->u.memWriteValueTask.awSize = RT_STARS_WRITE_VALUE_SIZE_TYPE_64BIT; |
| @@ -1943,6 +1944,7 @@ rtError_t UpdateWaitValueTaskParams(TaskInfo* const taskInfo, rtTaskParams* cons | |||
| 1943 | { | 1944 | { |
| 1944 | ERROR_RETURN(CheckUpdatingTaskParams(taskInfo, params), "task type or input params is invalid"); | 1945 | ERROR_RETURN(CheckUpdatingTaskParams(taskInfo, params), "task type or input params is invalid"); |
| 1945 | 1946 | ||
| 1947 | + BackupTaskArgHandle(taskInfo); | ||
| 1946 | TaskUnInitProc(taskInfo); | 1948 | TaskUnInitProc(taskInfo); |
| 1947 | // 需要先赋值类型,此类型会影响Init中的内存申请方式 | 1949 | // 需要先赋值类型,此类型会影响Init中的内存申请方式 |
| 1948 | taskInfo->type = TS_TASK_TYPE_MEM_WAIT_VALUE; | 1950 | taskInfo->type = TS_TASK_TYPE_MEM_WAIT_VALUE; |
| @@ -963,12 +963,6 @@ rtError_t CaptureModel::Update(void) | |||
| 963 | ERROR_RETURN(error, "free stream id and realloc stream id failed, stream_id=%d, model_id=%d.", streamId, Id_()); | 963 | ERROR_RETURN(error, "free stream id and realloc stream id failed, stream_id=%d, model_id=%d.", streamId, Id_()); |
| 964 | error = stm->UpdateAllPersistentTask(); | 964 | error = stm->UpdateAllPersistentTask(); |
| 965 | ERROR_RETURN(error, "stream update failed, stream_id=%d, model_id=%d.", streamId, Id_()); | 965 | ERROR_RETURN(error, "stream update failed, stream_id=%d, model_id=%d.", streamId, Id_()); |
| 966 | - if (stm->GetDelayRecycleTaskSqeNum() == 0U) { | ||
| 967 | - error = Context_()->ModelDelStream(this, stm); | ||
| 968 | - ERROR_RETURN(error, "remove stream from model failed, stream_id=%d, model_id=%d.", streamId, Id_()); | ||
| 969 | - error = Context_()->StreamDestroy(stm, true); | ||
| 970 | - ERROR_RETURN(error, "destroy stream failed, stream_id=%d, model_id=%d.", streamId, Id_()); | ||
| 971 | - } | ||
| 972 | } | 966 | } |
| 973 | 967 | ||
| 974 | SetIsSendSqe(false); | 968 | SetIsSendSqe(false); |
| @@ -976,6 +970,7 @@ rtError_t CaptureModel::Update(void) | |||
| 976 | releaseSqNum, releaseNtyNum); | 970 | releaseSqNum, releaseNtyNum); |
| 977 | return RT_ERROR_NONE; | 971 | return RT_ERROR_NONE; |
| 978 | } | 972 | } |
| 973 | + | ||
| 979 | void CaptureModel::SetModelCacheOpInfoSwitch(const uint32_t status) const { | 974 | void CaptureModel::SetModelCacheOpInfoSwitch(const uint32_t status) const { |
| 980 | RT_LOG(RT_LOG_INFO, "Set model cache op info switch status, model_id=%u, status=(%u -> %u).", Id_(), | 975 | RT_LOG(RT_LOG_INFO, "Set model cache op info switch status, model_id=%u, status=(%u -> %u).", Id_(), |
| 981 | cacheOpInfoSwitch_, status); | 976 | cacheOpInfoSwitch_, status); |