From 50c678e48b854be7ee54cf4cc0f0846bc6d1304e Mon Sep 17 00:00:00 2001 From: queyanwen Date: Fri, 27 Oct 2023 15:45:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=93=A6=E7=89=B9=E8=B0=83=E5=BA=A6&smart=5Fgr?= =?UTF-8?q?id=20bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pwrapic/src/powerapi.c | 4 ++-- pwrapic/src/pwrproc.c | 5 +++-- pwrapic/test/procapitest.c | 10 ++++++---- pwrapis/src/procservice.c | 11 ++++++----- pwrapis/src/server.c | 11 ++++++----- pwrapis/src/utils.c | 2 +- 6 files changed, 24 insertions(+), 19 deletions(-) diff --git a/pwrapic/src/powerapi.c b/pwrapic/src/powerapi.c index d08e1fe..6e0e5ef 100644 --- a/pwrapic/src/powerapi.c +++ b/pwrapic/src/powerapi.c @@ -495,7 +495,7 @@ int PWR_PROC_GetWattState(int *state) int PWR_PROC_SetWattState(int state) { CHECK_STATUS(STATUS_AUTHED); - if (state != PWR_ENABLE || state != PWR_DISABLE) { + if (state != PWR_ENABLE && state != PWR_DISABLE) { return PWR_ERR_INVALIDE_PARAM; } return SetProcWattState(state); @@ -561,7 +561,7 @@ int PWR_PROC_GetSmartGridState(int *state) int PWR_PROC_SetSmartGridState(int state) { CHECK_STATUS(STATUS_AUTHED); - if (state != PWR_ENABLE || state != PWR_DISABLE) { + if (state != PWR_ENABLE && state != PWR_DISABLE) { return PWR_ERR_INVALIDE_PARAM; } return SetSmartGridState(state); diff --git a/pwrapic/src/pwrproc.c b/pwrapic/src/pwrproc.c index 196746c..3ac86f5 100644 --- a/pwrapic/src/pwrproc.c +++ b/pwrapic/src/pwrproc.c @@ -219,9 +219,10 @@ int GetSmartGridProcs(PWR_PROC_SMART_GRID_LEVEL level, PWR_PROC_SmartGridProcs * int ret = SendReqAndWaitForRsp(input, output); if (ret != PWR_SUCCESS) { - PwrLog(ERROR, "GetWattProcs failed. ret:%d", ret); + PwrLog(ERROR, "GetSmartGridProcs failed. ret:%d", ret); } else { - PwrLog(DEBUG, "GetWattProcs succeed."); + sgProcs->procNum = (size - sizeof(PWR_PROC_SmartGridProcs)) / sizeof(pid_t); + PwrLog(DEBUG, "GetSmartGridProcs succeed."); } return ret; } diff --git a/pwrapic/test/procapitest.c b/pwrapic/test/procapitest.c index 9f91104..3d5d8d5 100644 --- a/pwrapic/test/procapitest.c +++ b/pwrapic/test/procapitest.c @@ -25,7 +25,7 @@ static void TEST_PWR_PROC_SetAndGetWattState(void) ret = PWR_PROC_GetWattState(&state); printf("PWR_PROC_GetWattState. ret: %d state:%d\n", ret, state); ret = PWR_PROC_SetWattState(PWR_ENABLE); - printf("PWR_PROC_SetWattState. ret: %d state:%d\n", ret, state); + printf("PWR_PROC_SetWattState. ret: %d state:%d\n", ret, PWR_ENABLE); } #define TEST_WATT_TH 60 @@ -49,7 +49,8 @@ static void TEST_PWR_PROC_SetAndGetWattAttrs(void) } bzero(&was, sizeof(was)); (void)PWR_PROC_GetWattAttrs(&was); - printf("PWR_PROC_SetWattAttrs: SUCCESS\n"); + printf("After PWR_PROC_SetWattAttrs: ret:%d th:%d, interval:%d dmask:%d\n", ret, + was.scaleThreshold, was.scaleInterval, was.domainMask); } #define TEST_PID_NUM 2 @@ -86,8 +87,8 @@ static void TEST_PWR_PROC_SetAndGetSmartGridState(void) int ret = PWR_SUCCESS; ret = PWR_PROC_GetSmartGridState(&state); printf("PWR_PROC_GetSmartGridState. ret: %d state:%d\n", ret, state); - ret = PWR_PROC_SetSmartGridState(!state); - printf("PWR_PROC_SetSmartGridState. ret: %d state:%d\n", ret, state); + ret = PWR_PROC_SetSmartGridState(PWR_ENABLE); + printf("PWR_PROC_SetSmartGridState. ret: %d\n", ret); } static void TEST_PWR_PROC_SetAndGetSmartGridProcs(void) @@ -104,6 +105,7 @@ static void TEST_PWR_PROC_SetAndGetSmartGridProcs(void) int ret = PWR_PROC_SetSmartGridLevel(sgp); printf("PWR_PROC_SetSmartGridLevel: ret:%d\n", ret); bzero(sgp, size); + sgp->procNum = TEST_PID_NUM; ret = PWR_PROC_GetSmartGridProcs(PWR_PROC_SG_LEVEL_1, sgp); printf("PWR_PROC_GetSmartGridProcs: ret:%d num:%d\n", ret, sgp->procNum); for (int i = 0; i < sgp->procNum; i++) { diff --git a/pwrapis/src/procservice.c b/pwrapis/src/procservice.c index d405c13..ec0eb6e 100644 --- a/pwrapis/src/procservice.c +++ b/pwrapis/src/procservice.c @@ -30,7 +30,7 @@ #define WATT_PROC_PATH "/sys/fs/cgroup/cpu/watt_sched/tasks" #define ROOT_CGROUP_PROC_PATH "/sys/fs/cgroup/cpu/tasks" -#define SMART_GRID_STATE_PATH "/proc/sys/kernel/smart_grid_strategy_ctl" +#define SMART_GRID_STATE_PATH "/proc/sys/kernel/smart_grid_strategy_ctrl" #define SMART_GRID_LEVEL_PATH_D "/proc/%d/smart_grid_level" #define SMART_GRID_LEVEL_PATH_S "/proc/%s/smart_grid_level" #define PROC_PATH "/proc" @@ -193,7 +193,7 @@ void ProcSetWattState(PwrMsg *req) return; } int *state = (int *)req->data; - if (*state != PWR_ENABLE || *state != PWR_DISABLE) { + if (*state != PWR_ENABLE && *state != PWR_DISABLE) { SendRspToClient(req, PWR_ERR_INVALIDE_PARAM, NULL, 0); return; } @@ -347,7 +347,7 @@ void ProcSetSmartGridState(PwrMsg *req) break; } int *state = (int *)req->data; - if (*state != PWR_ENABLE || *state != PWR_DISABLE) { + if (*state != PWR_ENABLE && *state != PWR_DISABLE) { ret = PWR_ERR_INVALIDE_PARAM; break; } @@ -373,14 +373,15 @@ void ProcGetSmartGridProcs(PwrMsg *req) return; } - PWR_PROC_SMART_GRID_LEVEL level = (PWR_PROC_SMART_GRID_LEVEL)req->data; + PWR_PROC_SMART_GRID_LEVEL *level = (PWR_PROC_SMART_GRID_LEVEL *)req->data; size_t size = sizeof(PWR_PROC_SmartGridProcs) + PWR_MAX_PROC_NUM * sizeof(pid_t); PWR_PROC_SmartGridProcs *sgProcs = (PWR_PROC_SmartGridProcs *)malloc(size); if (!sgProcs) { SendRspToClient(req, PWR_ERR_SYS_EXCEPTION, NULL, 0); return; } - int ret = ReadSmartGridProcsByLevel(level, sgProcs, PWR_MAX_PROC_NUM); + bzero(sgProcs, size); + int ret = ReadSmartGridProcsByLevel(*level, sgProcs, PWR_MAX_PROC_NUM); if (ret != PWR_SUCCESS) { free(sgProcs); SendRspToClient(req, ret, NULL, 0); diff --git a/pwrapis/src/server.c b/pwrapis/src/server.c index 7cbf4bd..e321f65 100644 --- a/pwrapis/src/server.c +++ b/pwrapis/src/server.c @@ -56,12 +56,12 @@ static int ListenStart(int sockFd, const struct sockaddr_un *addr) ret = setsockopt(sockFd, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse, sizeof(int)); if (ret < 0) { - Logger(ERROR, MD_NM_SVR, "set reuse socket error %s errno: %d\n", strerror(errno), errno); + Logger(ERROR, MD_NM_SVR, "set reuse socket error %s errno: %d", strerror(errno), errno); return PWR_ERR_SYS_EXCEPTION; } ret = bind(sockFd, (struct sockaddr *)addr, sizeof(struct sockaddr_un)); if (ret < 0) { - Logger(ERROR, MD_NM_SVR, "bind socket error %s errno: %d\n", strerror(errno), errno); + Logger(ERROR, MD_NM_SVR, "bind socket error %s errno: %d", strerror(errno), errno); return PWR_ERR_SYS_EXCEPTION; } @@ -75,7 +75,7 @@ static int ListenStart(int sockFd, const struct sockaddr_un *addr) ret = listen(sockFd, MAX_PEDDING_SOCKS); if (ret < 0) { - Logger(ERROR, MD_NM_SVR, "listen error %s errno: %d\n", strerror(errno), errno); + Logger(ERROR, MD_NM_SVR, "listen error %s errno: %d", strerror(errno), errno); return PWR_ERR_SYS_EXCEPTION; } g_listenFd = sockFd; @@ -97,7 +97,7 @@ static int StartUnxListen(const char *localFileName) // Create a socket sockFd = socket(AF_UNIX, SOCK_STREAM, 0); if (sockFd < 0) { - Logger(ERROR, MD_NM_SVR, "socket error %s errno: %d\n", strerror(errno), errno); + Logger(ERROR, MD_NM_SVR, "socket error %s errno: %d", strerror(errno), errno); return PWR_ERR_SYS_EXCEPTION; } return ListenStart(sockFd, (struct sockaddr_un *)&tSockaddr); @@ -390,7 +390,8 @@ static void ProcessSendMsgToClient(void) continue; } SendMsgToClientAction(dstFd, msg); - Logger(DEBUG, MD_NM_SVR, "send msg. opt:%d,sysId:%d", msg->head.optType, msg->head.sysId); + Logger(DEBUG, MD_NM_SVR, "send msg. opt:%d, sysId:%d, rspCode:%d", + msg->head.optType, msg->head.sysId, msg->head.rspCode); ReleasePwrMsg(&msg); } } diff --git a/pwrapis/src/utils.c b/pwrapis/src/utils.c index 5e40a49..8d4001b 100644 --- a/pwrapis/src/utils.c +++ b/pwrapis/src/utils.c @@ -947,7 +947,7 @@ int ReadFile(const char *strInfo, char *buf, int bufLen) if (fd == -1) { return 1; } - if (read(fd, buf, bufLen - 1) <= 0) { + if (read(fd, buf, bufLen - 1) < 0) { close(fd); return 1; } -- Gitee