From 7c5037e6ca3ab3d97f41e02f901f2552626f21e6 Mon Sep 17 00:00:00 2001 From: Webster Date: Thu, 9 May 2024 19:09:40 +0800 Subject: [PATCH] hilog bugfix Signed-off-by: Webster --- services/src/concurrent_task_controller.cpp | 12 +++++-- services/src/qos_interface.cpp | 37 ++++++++------------- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/services/src/concurrent_task_controller.cpp b/services/src/concurrent_task_controller.cpp index 7ddced1..3df8bb1 100644 --- a/services/src/concurrent_task_controller.cpp +++ b/services/src/concurrent_task_controller.cpp @@ -453,6 +453,7 @@ void TaskController::DealSystemRequest(int requestType, const Json::Value& paylo std::list::iterator TaskController::GetRecordOfPid(int pid) { + std::lock_guard lock(appInfoLock_); for (auto iter = foregroundApp_.begin(); iter != foregroundApp_.end(); iter++) { if (iter->GetPid() == pid) { return iter; @@ -486,6 +487,7 @@ void TaskController::NewForeground(int uid, int pid) } bool found = false; bool ddlEnabled = OHOS::system::GetBoolParameter(INTERVAL_DDL, false); + std::lock_guard lock(appInfoLock_); for (auto iter = foregroundApp_.begin(); iter != foregroundApp_.end(); iter++) { if (iter->GetPid() == pid) { found = true; @@ -535,6 +537,7 @@ void TaskController::NewBackground(int uid, int pid) } else { CONCUR_LOGI("auth_pause %{public}d fail with %{public}d", pid, ret); } + std::lock_guard lock(appInfoLock_); for (auto iter = foregroundApp_.begin(); iter != foregroundApp_.end(); iter++) { if (iter->GetPid() == pid) { iter->EndScene(); @@ -672,6 +675,7 @@ void TaskController::ModifyGameState(const Json::Value& payload) if (curGamePid_ == -1) { return; } + std::lock_guard lock(appInfoLock_); for (auto iter = foregroundApp_.begin(); iter != foregroundApp_.end(); iter++) { if (iter->GetPid() == curGamePid_ && iter->GetGrpId() >= 0) { CONCUR_LOGI("[MSG_GAME]destroy rtg grp, pid is %{public}d grpId is %{public}d", @@ -730,7 +734,6 @@ bool TaskController::ModifySystemRate(const Json::Value& payload) CONCUR_LOGI("service receive json invalid"); return false; } - std::lock_guard lock(rateInfoLock_); SetAppRate(payload); SetRenderServiceRate(payload); return true; @@ -743,7 +746,7 @@ void TaskController::SetAppRate(const Json::Value& payload) int appRate = 0; int uniAppRate = FindRateFromInfo(UNI_APP_RATE_ID, payload); if (uniAppRate > 0) { - CONCUR_LOGI("set unified app rate %{public}d", uniAppRate); + CONCUR_LOGD("set unified app rate %{public}d", uniAppRate); bool ret = OHOS::system::SetParameter(INTERVAL_APP_RATE, std::to_string(uniAppRate)); if (ret == false) { CONCUR_LOGI("set app rate param failed"); @@ -753,6 +756,7 @@ void TaskController::SetAppRate(const Json::Value& payload) 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(); @@ -788,8 +792,9 @@ int TaskController::FindRateFromInfo(int uiTid, const Json::Value& payload) void TaskController::SetRenderServiceRate(const Json::Value& payload) { int rsRate = FindRateFromInfo(renderServiceMainTid_, payload); + std::lock_guard lock(rateInfoLock_); if (renderServiceMainGrpId_ > 0 && rsRate > 0 && rsRate != systemRate_) { - CONCUR_LOGI("set rs rate %{public}d rtgId is %{public}d, old rate is %{public}d", + CONCUR_LOGD("set rs rate %{public}d rtgId is %{public}d, old rate is %{public}d", rsRate, renderServiceMainGrpId_, systemRate_); SetFrameRate(renderServiceMainGrpId_, rsRate); systemRate_ = rsRate; @@ -826,6 +831,7 @@ void TaskController::SetFrameRate(int rtgId, int rate) void TaskController::PrintInfo() { + std::lock_guard lock(appInfoLock_); for (auto iter = foregroundApp_.begin(); iter != foregroundApp_.end(); iter++) { iter->PrintKeyThreads(); } diff --git a/services/src/qos_interface.cpp b/services/src/qos_interface.cpp index 339adac..4bc270e 100644 --- a/services/src/qos_interface.cpp +++ b/services/src/qos_interface.cpp @@ -16,11 +16,13 @@ #ifndef GNU_SOURCE #define GNU_SOURCE #endif +#include #include #include #include #include #include +#include #include "qos_interface.h" @@ -28,11 +30,10 @@ static int TrivalOpenRtgNode(void) { char fileName[] = "/proc/self/sched_rtg_ctrl"; int fd = open(fileName, O_RDWR); -#ifdef QOS_DEBUG if (fd < 0) { - printf("task %d belong to user %d open rtg node failed\n", getpid(), getuid()); + CONCUR_LOGE("[Interface] task %{public}d belong to user %{public}d open rtg node failed, errno = %{public}d", + getpid(), getuid(), errno); } -#endif return fd; } @@ -40,11 +41,10 @@ static int TrivalOpenAuthCtrlNode(void) { char fileName[] = "/dev/auth_ctrl"; int fd = open(fileName, O_RDWR); -#ifdef QOS_DEBUG if (fd < 0) { - printf("task %d belong to user %d open auth node failed\n", getpid(), getuid()); + CONCUR_LOGE("[Interface] task %{public}d belong to user %{public}d open auth node failed, errno = %{public}d", + getpid(), getuid(), errno); } -#endif return fd; } @@ -52,11 +52,10 @@ static int TrivalOpenQosCtrlNode(void) { char fileName[] = "/proc/thread-self/sched_qos_ctrl"; int fd = open(fileName, O_RDWR); -#ifdef QOS_DEBUG if (fd < 0) { - printf("task %d belong to user %d open qos node failed\n", getpid(), getuid()); + CONCUR_LOGE("[Interface] task %{public}d belong to user %{public}d open qos node failed, errno = %{public}d", + getpid(), getuid(), errno); } -#endif return fd; } @@ -256,11 +255,9 @@ int QosApplyForOther(unsigned int level, int tid) data.pid = tid; ret = ioctl(fd, QOS_CTRL_BASIC_OPERATION, &data); -#ifdef QOS_DEBUG if (ret < 0) { - printf("qos apply failed for task %d\n", tid); + CONCUR_LOGE("[Interface] task %{public}d apply qos failed, errno = %{public}d", tid, errno); } -#endif close(fd); return ret; } @@ -280,11 +277,9 @@ int QosLeave(void) data.pid = gettid(); ret = ioctl(fd, QOS_CTRL_BASIC_OPERATION, &data); -#ifdef QOS_DEBUG if (ret < 0) { - printf("qos leave failed for task %d\n", getpid()); + CONCUR_LOGE("[Interface] task %{public}d leave qos failed, errno = %{public}d", gettid(), errno); } -#endif close(fd); return ret; } @@ -304,11 +299,9 @@ int QosLeaveForOther(int tid) data.pid = tid; ret = ioctl(fd, QOS_CTRL_BASIC_OPERATION, &data); -#ifdef QOS_DEBUG if (ret < 0) { - printf("qos leave failed for task %d\n", tid); + CONCUR_LOGE("[Interface] task %{public}d leave qos failed, errno = %{public}d", tid, errno); } -#endif close(fd); return ret; } @@ -324,11 +317,9 @@ int QosPolicySet(const struct QosPolicyDatas *policyDatas) } ret = ioctl(fd, QOS_CTRL_POLICY_OPERATION, policyDatas); -#ifdef QOS_DEBUG if (ret < 0) { - printf("set qos policy failed for task %d\n", getpid()); + CONCUR_LOGE("[Interface] set qos policy failed, errno = %{public}d", errno); } -#endif close(fd); return ret; } @@ -355,11 +346,9 @@ int QosGetForOther(int tid, int &level) data.qos = -1; ret = ioctl(fd, QOS_CTRL_BASIC_OPERATION, &data); -#ifdef QOS_DEBUG if (ret < 0) { - printf("get qos failed for task %d\n", tid); + CONCUR_LOGE("[Interface] task %{public}d get qos failed, errno = %{public}d", tid, errno); } -#endif level = data.qos; close(fd); -- Gitee