From ea8ac207d49a1918a47f0ac6697da28ea0e0e232 Mon Sep 17 00:00:00 2001 From: liuyuxiu Date: Mon, 12 Aug 2024 16:55:46 +0800 Subject: [PATCH 1/5] qos_manager Signed-off-by: liuyuxiu --- common/include/config_reader.h | 1 + common/src/config_reader.cpp | 1 - .../include/concurrent_task_type.h | 2 + .../src/concurrent_task_service_proxy.cpp | 2 +- services/include/concurrent_task_controller.h | 21 +- services/include/qos_interface.h | 1 + services/src/concurrent_task_controller.cpp | 227 ++++++++++++++++-- services/src/concurrent_task_service_stub.cpp | 2 +- .../phone/concurrent_task_controller_test.cpp | 4 +- 9 files changed, 233 insertions(+), 28 deletions(-) diff --git a/common/include/config_reader.h b/common/include/config_reader.h index fb78112..a2c73ca 100644 --- a/common/include/config_reader.h +++ b/common/include/config_reader.h @@ -23,6 +23,7 @@ namespace OHOS { namespace ConcurrentTask { +constexpr int FPS_OFFSET = 10000; class ConfigReader { public: bool LoadFromConfigFile(const std::string& configFile); diff --git a/common/src/config_reader.cpp b/common/src/config_reader.cpp index bdc3e8a..e8ddb3a 100644 --- a/common/src/config_reader.cpp +++ b/common/src/config_reader.cpp @@ -39,7 +39,6 @@ namespace { const std::string XML_TAG_FPS_HIGH = "120"; const std::string XML_TAG_FPS_MEDIUM = "90"; const std::string XML_TAG_FPS_STANDARD = "60"; - constexpr int FPS_OFFSET = 10000; } bool ConfigReader::IsValidNode(const xmlNode* currNode) diff --git a/frameworks/concurrent_task_client/include/concurrent_task_type.h b/frameworks/concurrent_task_client/include/concurrent_task_type.h index a83277f..94cb126 100644 --- a/frameworks/concurrent_task_client/include/concurrent_task_type.h +++ b/frameworks/concurrent_task_client/include/concurrent_task_type.h @@ -53,6 +53,8 @@ enum QueryIntervalItem { QUERY_EXECUTOR_START = 5, QUERY_RENDER_SERVICE_MAIN = 6, QUERY_RENDER_SERVICE_RENDER = 7, + QUERY_SELF_RENDER_REMOVE_THREAD = 8, + QUERY_SELF_RENDER_ADD_THREAD = 9, QURRY_TYPE_MAX, }; diff --git a/frameworks/concurrent_task_client/src/concurrent_task_service_proxy.cpp b/frameworks/concurrent_task_client/src/concurrent_task_service_proxy.cpp index 8e0e4a8..6ba5a9b 100644 --- a/frameworks/concurrent_task_client/src/concurrent_task_service_proxy.cpp +++ b/frameworks/concurrent_task_client/src/concurrent_task_service_proxy.cpp @@ -53,7 +53,7 @@ void ConcurrentTaskServiceProxy::QueryInterval(int queryItem, IntervalReply& que CONCUR_LOGE("Write interface token failed in QueryInterval Proxy"); return; } - if (!data.WriteInt32(queryItem) || !data.WriteInt32(queryRs.tid)) { + if (!data.WriteInt32(queryItem) || !data.WriteInt32(queryRs.tid) || !data.WriteInt32(queryRs.paramA)) { CONCUR_LOGE("Write info failed in QueryInterval Proxy"); return; } diff --git a/services/include/concurrent_task_controller.h b/services/include/concurrent_task_controller.h index 5dadc7a..27dca04 100644 --- a/services/include/concurrent_task_controller.h +++ b/services/include/concurrent_task_controller.h @@ -31,6 +31,11 @@ namespace OHOS { namespace ConcurrentTask { class ForegroundAppRecord; +struct TaskConfig { + int pid; + unsigned int value; +}; + class TaskController { public: static TaskController& GetInstance(); @@ -59,6 +64,8 @@ private: void QueryRenderServiceRender(pid_t uid, pid_t pid, IntervalReply& queryRs); void QueryHardware(pid_t uid, pid_t pid, IntervalReply& queryRs); void QueryExecutorStart(pid_t uid, pid_t pid, IntervalReply& queryRs); + void QuerySelfRenderRemoveThread(pid_t uid, pid_t pid, IntervalReply& queryRs); + void QuerySelfRenderAddThread(pid_t uid, pid_t pid, IntervalReply& queryRs); void QueryHwc(pid_t uid, IntervalReply& queryRs); int GetRequestType(std::string strRequstType); void DealSystemRequest(int requestType, const Json::Value& payload); @@ -77,6 +84,7 @@ private: bool ConfigReaderInit(); bool ModifySystemRate(const Json::Value& payload); void SetAppRate(const Json::Value& payload); + void UpdateAllAppRate(int appRate); int FindRateFromInfo(int uiTid, const Json::Value& payload); void SetRenderServiceRate(const Json::Value& payload); void SetAppAndRenderServiceRate(int appRate, int rsRate); @@ -128,7 +136,7 @@ private: class ForegroundAppRecord { public: - explicit ForegroundAppRecord(int pid, int uiTid, bool createGrp = true); + explicit ForegroundAppRecord(int pid, int uiTid, int appRate = 120, bool createGrp = true); ~ForegroundAppRecord(); void AddKeyThread(int tid, int prio = PRIO_NORMAL); @@ -143,13 +151,24 @@ public: void SetGrpId(int grpId); bool IsValid(); void PrintKeyThreads(); + int AddSelfRenderTid(IntervalReply& queryRs); + int RemoveSelfRenderTid(IntervalReply& queryRs); + void UpdateRate(int appRate); private: int pid_ = 0; int grpId_ = 0; int rate_ = 0; int uiTid_ = 0; + bool isForeground_ = false; + bool selfRenderStop_ = false; + int selfRenderGrpId_ = -1; + std::unordered_set selfRenderTids_; + std::map selfRenderTidCheckQos_; std::unordered_set keyThreads_; + + void TryCreateSelfRenderGrp(); + int SetTaskSmt(int tid, unsigned int smt_type); }; } // namespace ConcurrentTask } // namespace OHOS diff --git a/services/include/qos_interface.h b/services/include/qos_interface.h index 42d8987..533c7ec 100644 --- a/services/include/qos_interface.h +++ b/services/include/qos_interface.h @@ -30,6 +30,7 @@ constexpr unsigned int SET_RTG_ENABLE = 1; constexpr unsigned int QOS_CTRL_IPC_MAGIC = 0xCC; constexpr unsigned int AUTH_CTRL_IPC_MAGIC = 0xCD; constexpr unsigned int RTG_SCHED_IPC_MAGIC = 0xAB; +constexpr char PERF_CTRL_MAGIC = 'x'; constexpr unsigned int AF_QOS_ALL = 0x0003; constexpr unsigned int AF_QOS_DELEGATED = 0x0001; diff --git a/services/src/concurrent_task_controller.cpp b/services/src/concurrent_task_controller.cpp index d1cb67a..7257382 100644 --- a/services/src/concurrent_task_controller.cpp +++ b/services/src/concurrent_task_controller.cpp @@ -49,8 +49,13 @@ namespace { constexpr int APP_TYPE_INVALID = -1; } +#define SMT_EXPELLEE 0U +#define SMT_EXPELLER 2U +#define SET_TASK_NO_SMT 41 #define CMD_ID_SET_RTG \ _IOWR(RTG_SCHED_IPC_MAGIC, SET_RTG, struct rtg_str_data) +#define PERF_CTRL_SET_TASK_NO_SMT \ + _IOWR(PERF_CTRL_MAGIC, SET_TASK_NO_SMT, struct TaskConfig) TaskController& TaskController::GetInstance() { @@ -131,6 +136,12 @@ void TaskController::QueryInterval(int queryItem, IntervalReply& queryRs) case QUERY_EXECUTOR_START: QueryExecutorStart(uid, pid, queryRs); break; + case QUERY_SELF_RENDER_REMOVE_THREAD: + QuerySelfRenderRemoveThread(uid, pid, queryRs); + break; + case QUERY_SELF_RENDER_ADD_THREAD: + QuerySelfRenderAddThread(uid, pid, queryRs); + break; default: break; } @@ -309,6 +320,30 @@ void TaskController::QueryExecutorStart(int uid, int pid, IntervalReply& queryRs queryRs.rtgId = renderServiceMainGrpId_; } +void TaskController::QuerySelfRenderRemoveThread(int uid, int pid, IntervalReply& queryRs) +{ + auto iter = GetRecordOfPid(pid); + if (iter != foregroundApp_.end()) { + queryRs.paramA = iter->RemoveSelfRenderTid(queryRs); + if (queryRs.paramA != 0) { + CONCUR_LOGE("uid %{public}d pid %{public}d Query Self Render Remove Thread %{public}d failed: %{public}d", + uid, pid, queryRs.tid, queryRs.paramA); + } + } +} + +void TaskController::QuerySelfRenderAddThread(int uid, int pid, IntervalReply& queryRs) +{ + auto iter = GetRecordOfPid(pid); + if (iter != foregroundApp_.end()) { + queryRs.paramA = iter->AddSelfRenderTid(queryRs); + if (queryRs.paramA != 0) { + CONCUR_LOGE("uid %{public}d pid %{public}d Query Self Render Add Thread %{public}d failed: %{public}d", + uid, pid, queryRs.tid, queryRs.paramA); + } + } +} + void TaskController::QueryHwc(int uid, IntervalReply& queryRs) { pid_t pid = IPCSkeleton::GetInstance().GetCallingPid(); @@ -551,7 +586,7 @@ void TaskController::NewForeground(int uid, int pid) void TaskController::NewForegroundAppRecord(int pid, int uiTid, bool ddlEnabled) { - ForegroundAppRecord& appRecord = foregroundApp_.emplace_back(pid, uiTid, pid != curGamePid_); + ForegroundAppRecord& appRecord = foregroundApp_.emplace_back(pid, uiTid, uniAppRate_, pid != curGamePid_); if (foregroundApp_.size() <= 0 || appRecord.GetPid() != pid) { CONCUR_LOGE("pid %{public}d create app record failed", pid); return; @@ -840,10 +875,17 @@ bool TaskController::ModifySystemRate(const Json::Value& payload) return true; } +void TaskController::UpdateAllAppRate(int appRate) +{ + appRate = appRate > FPS_OFFSET ? appRate - FPS_OFFSET : appRate; + std::lock_guard lock(appInfoLock_); + for (auto iter = foregroundApp_.begin(); iter != foregroundApp_.end(); iter++) { + iter->UpdateRate(appRate); + } +} + void TaskController::SetAppRate(const Json::Value& payload) { - int rtgId = 0; - int uiTid = 0; int appRate = FindRateFromInfo(UNI_APP_RATE_ID, payload); if (appRate > 0 && appRate != uniAppRate_) { CONCUR_LOGD("set unified app rate %{public}d", appRate); @@ -855,27 +897,12 @@ void TaskController::SetAppRate(const Json::Value& payload) if (ret == false) { CONCUR_LOGI("set app rate param failed"); } + UpdateAllAppRate(appRate); StartTrace(HITRACE_TAG_ACE, "SetAppRate:" + std::to_string(appRate) + " ret:" + std::to_string(ret)); FinishTrace(HITRACE_TAG_ACE); return; } - std::lock_guard lock(appInfoLock_); - for (auto iter = foregroundApp_.begin(); iter != foregroundApp_.end(); iter++) { - uiTid = iter->GetUiTid(); - rtgId = iter->GetGrpId(); - if (uiTid <= 0 || rtgId <= 0) { - continue; - } - appRate = FindRateFromInfo(uiTid, payload); - if (appRate > 0 && appRate != iter->GetRate()) { - CONCUR_LOGI("set app rate %{public}d rtgId is %{public}d, old rate is %{public}d", - appRate, rtgId, iter->GetRate()); - SetFrameRate(rtgId, appRate); - iter->SetRate(appRate); - } - } - return; } int TaskController::FindRateFromInfo(int uiTid, const Json::Value& payload) @@ -921,6 +948,7 @@ void TaskController::SetAppAndRenderServiceRate(int appRate, int rsRate) if (ret == false) { CONCUR_LOGI("set app rate param failed"); } + UpdateAllAppRate(appRate); StartTrace(HITRACE_TAG_ACE, "SetAppRate:" + std::to_string(appRate) + " ret:" + std::to_string(ret)); FinishTrace(HITRACE_TAG_ACE); @@ -1017,10 +1045,11 @@ bool TaskController::IsVideoApp(int pid) return false; } -ForegroundAppRecord::ForegroundAppRecord(int pid, int uiTid, bool createGrp) +ForegroundAppRecord::ForegroundAppRecord(int pid, int uiTid, int appRate, bool createGrp) { pid_ = pid; uiTid_ = uiTid; + rate_ = appRate; if (OHOS::system::GetBoolParameter(INTERVAL_DDL, false) && createGrp) { grpId_ = TaskController::GetInstance().CreateNewRtgGrp(PRIO_RT, MAX_KEY_THREADS); } else { @@ -1033,6 +1062,9 @@ ForegroundAppRecord::~ForegroundAppRecord() if (grpId_ > 0) { DestroyRtgGrp(grpId_); } + if (selfRenderGrpId_ > 0) { + DestroyRtgGrp(selfRenderGrpId_); + } } void ForegroundAppRecord::AddKeyThread(int tid, int prio) @@ -1062,6 +1094,102 @@ void ForegroundAppRecord::AddKeyThread(int tid, int prio) } } +void ForegroundAppRecord::TryCreateSelfRenderGrp() +{ + if (selfRenderGrpId_ > 0) { + CONCUR_LOGI("self render group %{public}d already create", selfRenderGrpId_); + return; + } + int ret = 0; + ret = TaskController::GetInstance().CreateNewRtgGrp(PRIO_RT, MAX_KEY_THREADS); + if (ret < 0) { + CONCUR_LOGE("TryCreateSelfRenderGrp create group failed: %{public}d", ret); + return; + } + selfRenderGrpId_ = ret; + SetFrameRateAndPrioType(selfRenderGrpId_, rate_, PARAM_TYPE); +} + +int ForegroundAppRecord::SetTaskSmt(int tid, unsigned int smt_type) +{ + struct TaskConfig task_config; + int ret = 0; + int fd = open("/dev/hisi_perf_ctrl", O_RDWR); + if (fd < 0) { + CONCUR_LOGE("Open file /dev/hisi_perf_ctrl, errno = %{public}d", errno); + return fd; + } + (void)memset_s(&task_config, sizeof(struct TaskConfig), 0, sizeof(struct TaskConfig)); + task_config.pid = tid; + task_config.value = smt_type; + ret = ioctl(fd, PERF_CTRL_SET_TASK_NO_SMT, &task_config); + if (ret < 0) { + CONCUR_LOGE("set task %{public}d smt %{public}u failed, errno = %{public}d (%{public}s)", + tid, smt_type, errno, strerror(errno)); + } else { + CONCUR_LOGI("set task %{public}d smt %{public}u success", tid, smt_type); + } + close(fd); + return ret; +} + +int ForegroundAppRecord::AddSelfRenderTid(IntervalReply& queryRs) +{ + int tid = queryRs.tid; + if (selfRenderGrpId_ <= 0) { + TryCreateSelfRenderGrp(); + CONCUR_LOGI("tid %{public}d add self render failed and create %{public}d", tid, selfRenderGrpId_); + if (selfRenderGrpId_ <= 0) { + CONCUR_LOGE("tid %{public}d create self render group failed", tid); + return -1; + } + } + queryRs.rtgId = selfRenderGrpId_; + if (selfRenderTids_.find(tid) != selfRenderTids_.end()) { + CONCUR_LOGI("tid %{public}d already in self render group", tid); + return 0; + } + int check_qos = queryRs.paramA; + int ret = AddThreadToRtg(tid, selfRenderGrpId_, PRIO_RT); + if (ret != 0) { + CONCUR_LOGE("tid %{public}d check_qos %{public}d join self render group failed: %{public}d", + tid, check_qos, ret); + return ret; + } + ret = SetTaskSmt(tid, SMT_EXPELLER); + if (ret != 0) { + CONCUR_LOGE("tid %{public}d set smt %{public}u failed: %{public}d", tid, SMT_EXPELLER, ret); + } + selfRenderTids_.insert(tid); + selfRenderTidCheckQos_[tid] = check_qos; + return ret; +} + +int ForegroundAppRecord::RemoveSelfRenderTid(IntervalReply& queryRs) +{ + int tid = queryRs.tid; + if (selfRenderTids_.find(tid) == selfRenderTids_.end()) { + return 0; + } + if (selfRenderGrpId_ <= 0) { + CONCUR_LOGI("Remove self render tid fail: Grp id not been created success, tid is %{public}d", tid); + return -1; + } + int check_qos = queryRs.paramA; + int ret = SetTaskSmt(tid, SMT_EXPELLEE); + if (ret != 0) { + CONCUR_LOGE("tid %{public}d set smt %{public}u failed: %{public}d", tid, SMT_EXPELLEE, ret); + } + ret = RemoveRtgThread(tid); + if (ret != 0) { + CONCUR_LOGE("tid %{public}d check_qos %{public}d exit self render group failed: %{public}d", + tid, check_qos, ret); + } + selfRenderTids_.erase(tid); + selfRenderTidCheckQos_.erase(tid); + return ret; +} + bool ForegroundAppRecord::BeginScene() { if (grpId_ <= 0) { @@ -1070,6 +1198,29 @@ bool ForegroundAppRecord::BeginScene() } OHOS::RME::BeginFrameFreq(0); OHOS::RME::EndFrameFreq(0); + isForeground_ = true; + if (selfRenderGrpId_ < 0 && selfRenderStop_) { + int ret = 0; + ret = TaskController::GetInstance().CreateNewRtgGrp(PRIO_RT, MAX_KEY_THREADS); + if (ret < 0) { + CONCUR_LOGE("StartSelfRender create group failed."); + return false; + } + selfRenderGrpId_ = ret; + SetFrameRateAndPrioType(selfRenderGrpId_, rate_, PARAM_TYPE); + for (auto it = selfRenderTids_.begin(); it != selfRenderTids_.end(); it++) { + ret = AddThreadToRtg(*it, selfRenderGrpId_, PRIO_RT); + if (ret != 0) { + CONCUR_LOGE("tid %{public}d join self render group failed.", *it); + return false; + } + ret = SetTaskSmt(*it, SMT_EXPELLER); + if (ret != 0) { + CONCUR_LOGE("tid %{public}d set smt %{public}u failed: %{public}d", *it, SMT_EXPELLER, ret); + } + } + selfRenderStop_ = false; + } return true; } @@ -1080,9 +1231,43 @@ bool ForegroundAppRecord::EndScene() return false; } OHOS::RME::EndScene(grpId_); + isForeground_ = false; + if (selfRenderGrpId_ > 0) { + int ret = 0; + for (auto it = selfRenderTids_.begin(); it != selfRenderTids_.end(); it++) { + ret = SetTaskSmt(*it, SMT_EXPELLEE); + if (ret != 0) { + CONCUR_LOGE("tid %{public}d set smt %{public}u failed: %{public}d", *it, SMT_EXPELLEE, ret); + } + } + OHOS::RME::DestroyRtgGrp(selfRenderGrpId_); + selfRenderGrpId_ = -1; + selfRenderStop_ = true; + } return true; } +void ForegroundAppRecord::UpdateRate(int appRate) +{ + if (uiTid_ <= 0 || grpId_ <= 0) { + CONCUR_LOGI("set app rate failed: uiTid=%{public}d grpId=%{public}d", uiTid_, grpId_); + return; + } + if (appRate > 0 && appRate != rate_) { + int oldRate = rate_; + rate_ = appRate; + if (!isForeground_) { + CONCUR_LOGD("set app rate failed: uiTid=%{public}d grpId=%{public}d is not foreground", uiTid_, grpId_); + return; + } + if (selfRenderGrpId_ > 0) { + SetFrameRateAndPrioType(selfRenderGrpId_, appRate, PARAM_TYPE); + CONCUR_LOGI("set self render rate %{public}d rtgId is %{public}d, old rate is %{public}d", + appRate, selfRenderGrpId_, oldRate); + } + } +} + int ForegroundAppRecord::GetPid() const { return pid_; @@ -1139,4 +1324,4 @@ void ForegroundAppRecord::PrintKeyThreads() CONCUR_LOGD("%{public}s", strLog.c_str()); } } // namespace ConcurrentTask -} // namespace OHOS +} // namespace OHOS \ No newline at end of file diff --git a/services/src/concurrent_task_service_stub.cpp b/services/src/concurrent_task_service_stub.cpp index c33ec9b..6bcf9bd 100644 --- a/services/src/concurrent_task_service_stub.cpp +++ b/services/src/concurrent_task_service_stub.cpp @@ -71,7 +71,7 @@ int32_t ConcurrentTaskServiceStub::QueryIntervalInner(MessageParcel& data, [[may queryRs.tid = -1; queryRs.paramA = -1; queryRs.paramB = -1; - if (!data.ReadInt32(item) || !data.ReadInt32(queryRs.tid)) { + if (!data.ReadInt32(item) || !data.ReadInt32(queryRs.tid) || !data.ReadInt32(queryRs.paramA)) { CONCUR_LOGE("Read info failed in QueryInterval Stub"); return IPC_STUB_ERR; } diff --git a/test/unittest/phone/concurrent_task_controller_test.cpp b/test/unittest/phone/concurrent_task_controller_test.cpp index 19cc245..9f738ed 100644 --- a/test/unittest/phone/concurrent_task_controller_test.cpp +++ b/test/unittest/phone/concurrent_task_controller_test.cpp @@ -412,12 +412,10 @@ HWTEST_F(ConcurrentTaskControllerTest, SetAppRateTest, TestSize.Level1) foreApp1.SetRate(60); TaskController::GetInstance().foregroundApp_.push_back(foreApp1); TaskController::GetInstance().foregroundApp_.begin()->grpId_ = 1; - payload["758"] = "120"; + payload["-1"] = "120"; TaskController::GetInstance().SetAppRate(payload); int curAppRate = TaskController::GetInstance().foregroundApp_.begin()->GetRate(); EXPECT_EQ(curAppRate, 120); - payload["-1"] = "120"; - TaskController::GetInstance().SetAppRate(payload); EXPECT_EQ(OHOS::system::GetIntParameter("persist.ffrt.interval.appRate", 0), 120); } -- Gitee From 1340b08b308668427755241ab475b61106b8c2d4 Mon Sep 17 00:00:00 2001 From: liuyuxiu Date: Mon, 12 Aug 2024 16:58:51 +0800 Subject: [PATCH 2/5] qos_manager Signed-off-by: liuyuxiu --- services/src/concurrent_task_controller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/src/concurrent_task_controller.cpp b/services/src/concurrent_task_controller.cpp index 7257382..02dae7f 100644 --- a/services/src/concurrent_task_controller.cpp +++ b/services/src/concurrent_task_controller.cpp @@ -897,7 +897,7 @@ void TaskController::SetAppRate(const Json::Value& payload) if (ret == false) { CONCUR_LOGI("set app rate param failed"); } - UpdateAllAppRate(appRate); + UpdateAllAppRate(appRate); StartTrace(HITRACE_TAG_ACE, "SetAppRate:" + std::to_string(appRate) + " ret:" + std::to_string(ret)); FinishTrace(HITRACE_TAG_ACE); -- Gitee From d8ddadcb8d87c08d375d15f2ba316c0dfa032938 Mon Sep 17 00:00:00 2001 From: liuyuxiu Date: Mon, 12 Aug 2024 16:59:41 +0800 Subject: [PATCH 3/5] qos_manager Signed-off-by: liuyuxiu --- services/src/concurrent_task_controller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/src/concurrent_task_controller.cpp b/services/src/concurrent_task_controller.cpp index 02dae7f..7257382 100644 --- a/services/src/concurrent_task_controller.cpp +++ b/services/src/concurrent_task_controller.cpp @@ -897,7 +897,7 @@ void TaskController::SetAppRate(const Json::Value& payload) if (ret == false) { CONCUR_LOGI("set app rate param failed"); } - UpdateAllAppRate(appRate); + UpdateAllAppRate(appRate); StartTrace(HITRACE_TAG_ACE, "SetAppRate:" + std::to_string(appRate) + " ret:" + std::to_string(ret)); FinishTrace(HITRACE_TAG_ACE); -- Gitee From d75c730ee766c937b3599dd6a11b4045dc0bce8e Mon Sep 17 00:00:00 2001 From: liuyuxiu Date: Tue, 13 Aug 2024 09:48:50 +0800 Subject: [PATCH 4/5] qos Signed-off-by: liuyuxiu --- services/src/concurrent_task_controller.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/services/src/concurrent_task_controller.cpp b/services/src/concurrent_task_controller.cpp index 7257382..849efad 100644 --- a/services/src/concurrent_task_controller.cpp +++ b/services/src/concurrent_task_controller.cpp @@ -136,12 +136,12 @@ void TaskController::QueryInterval(int queryItem, IntervalReply& queryRs) case QUERY_EXECUTOR_START: QueryExecutorStart(uid, pid, queryRs); break; - case QUERY_SELF_RENDER_REMOVE_THREAD: - QuerySelfRenderRemoveThread(uid, pid, queryRs); - break; - case QUERY_SELF_RENDER_ADD_THREAD: + case QUERY_SELF_RENDER_REMOVE_THREAD: + QuerySelfRenderRemoveThread(uid, pid, queryRs); + break; + case QUERY_SELF_RENDER_ADD_THREAD: QuerySelfRenderAddThread(uid, pid, queryRs); - break; + break; default: break; } @@ -897,7 +897,7 @@ void TaskController::SetAppRate(const Json::Value& payload) if (ret == false) { CONCUR_LOGI("set app rate param failed"); } - UpdateAllAppRate(appRate); + UpdateAllAppRate(appRate); StartTrace(HITRACE_TAG_ACE, "SetAppRate:" + std::to_string(appRate) + " ret:" + std::to_string(ret)); FinishTrace(HITRACE_TAG_ACE); -- Gitee From 6db763e7a0235b8b1e8b272f9e73bf917f743d8d Mon Sep 17 00:00:00 2001 From: liuyuxiu Date: Tue, 13 Aug 2024 11:07:46 +0800 Subject: [PATCH 5/5] qos_manager Signed-off-by: liuyuxiu --- services/src/concurrent_task_controller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/src/concurrent_task_controller.cpp b/services/src/concurrent_task_controller.cpp index 849efad..83ebdbd 100644 --- a/services/src/concurrent_task_controller.cpp +++ b/services/src/concurrent_task_controller.cpp @@ -327,7 +327,7 @@ void TaskController::QuerySelfRenderRemoveThread(int uid, int pid, IntervalReply queryRs.paramA = iter->RemoveSelfRenderTid(queryRs); if (queryRs.paramA != 0) { CONCUR_LOGE("uid %{public}d pid %{public}d Query Self Render Remove Thread %{public}d failed: %{public}d", - uid, pid, queryRs.tid, queryRs.paramA); + uid, pid, queryRs.tid, queryRs.paramA); } } } -- Gitee