已合并
[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
已合并
yanan创建于 8月3日
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+ 
979void CaptureModel::SetModelCacheOpInfoSwitch(const uint32_t status) const {974void 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);