From 08a175199223dd3219b2dd5b78f203a7cd8c5f09 Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Thu, 26 Oct 2023 00:16:26 +0000 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E9=80=80=20'Pull=20Request=20!127=20:?= =?UTF-8?q?=20CreatNewRtgGrp=E5=87=BD=E6=95=B0=E5=85=AC=E6=9C=89=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E4=BB=93=E7=A7=81=E6=9C=89=EF=BC=8C=E5=A4=96=E9=83=A8?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=94=B9=E4=B8=BA=E5=86=85=E9=83=A8=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=EF=BC=8C=E4=BE=9D=E8=B5=96=E4=BF=AE=E6=94=B9'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/include/rtg_interface.h | 1 + .../include/intellisense_server.h | 1 - .../src/intellisense_server.cpp | 38 +------------------ .../innerkits/frameintf/frame_msg_intf.cpp | 5 --- .../innerkits/frameintf/frame_msg_intf.h | 1 - .../innerkits/frameintf/rtg_interface.cpp | 26 +++++++++++++ test/BUILD.gn | 5 +-- test/unittest/phone/rtg_interface_test.cpp | 33 ++++++++-------- 8 files changed, 45 insertions(+), 65 deletions(-) diff --git a/common/include/rtg_interface.h b/common/include/rtg_interface.h index 94f2a4e..dce9a3a 100644 --- a/common/include/rtg_interface.h +++ b/common/include/rtg_interface.h @@ -86,6 +86,7 @@ enum rtg_sched_cmdid { extern "C" { int EnableRtg(bool flag); + int CreateNewRtgGrp(int prioType = 0, int rtNum = 0); // Return GrpId if success int AddThreadToRtg(int tid, int grpId, int prioType = 0); int AddThreadsToRtg(vector tids, int grpId, int prioType = 0); int RemoveRtgThread(int tid); diff --git a/frameworks/core/frame_aware_policy/include/intellisense_server.h b/frameworks/core/frame_aware_policy/include/intellisense_server.h index ad4222a..7b34b8f 100644 --- a/frameworks/core/frame_aware_policy/include/intellisense_server.h +++ b/frameworks/core/frame_aware_policy/include/intellisense_server.h @@ -52,7 +52,6 @@ private: void AuthForeground(int uid); void AuthBackground(int uid); int TryCreateRtgForApp(AppInfo *app); - int CreateNewRtgGrp(int prioType = 0, int rtNum = 0); inline CgroupPolicy CheckCgroupState(const CgroupPolicy cgroup); std::list::iterator GetRecordOfPid(int pid); std::list m_historyApp = {}; diff --git a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp index 197e5cb..6ca24c2 100644 --- a/frameworks/core/frame_aware_policy/src/intellisense_server.cpp +++ b/frameworks/core/frame_aware_policy/src/intellisense_server.cpp @@ -14,17 +14,13 @@ */ #include "intellisense_server.h" -#include -#include #include #include #include #include -#include #include -#include -#include #include +#include #include "qos_common.h" #include "para_config.h" #include "rtg_interface.h" @@ -36,8 +32,6 @@ namespace { static std::string configFilePath = "/system/etc/frame_aware_sched/hwrme.xml"; // need To check the exact file path. constexpr int WEB_BASE_UID = 1000001; constexpr int WEB_END_UID = 1099999; - const char RTG_SCHED_IPC_MAGIC = 0xAB; - constexpr int RTG_TYPE_MAX = 3; } using namespace std; using namespace QosCommon; @@ -45,9 +39,6 @@ using namespace QosCommon; DEFINE_RMELOG_INTELLISENSE("ueaServer-IntelliSenseServer"); IMPLEMENT_SINGLE_INSTANCE(IntelliSenseServer); -#define CMD_ID_SET_RTG \ - _IOWR(RTG_SCHED_IPC_MAGIC, SET_RTG, struct rtg_str_data) - void IntelliSenseServer::Init() { if (!ReadXml()) { @@ -358,32 +349,5 @@ void IntelliSenseServer::AuthBackground(int uid) } } -int IntelliSenseServer::CreateNewRtgGrp(int prioType, int rtNum) -{ - struct rtg_grp_data grp_data; - int ret; - char fileName[] = "/proc/self/sched_rtg_ctrl"; - int fd = open(fileName, O_RDWR); - if (fd < 0) { - RME_LOGE("Open file /proc/self/sched_rth_ctrl, errno = %{public}d", errno); - return fd; - } - (void)memset_s(&grp_data, sizeof(struct rtg_grp_data), 0, sizeof(struct rtg_grp_data)); - if ((prioType > 0) && (prioType < RTG_TYPE_MAX)) { - grp_data.prio_type = prioType; - } - if (rtNum > 0) { - grp_data.rt_cnt = rtNum; - } - grp_data.rtg_cmd = CMD_CREATE_RTG_GRP; - ret = ioctl(fd, CMD_ID_SET_RTG, &grp_data); - if (ret < 0) { - RME_LOGE("create rtg grp failed, errno = %{public}d (%{public}s)", errno, strerror(errno)); - } else { - RME_LOGI("create rtg grp success, get rtg id %{public}d.", ret); - } - close(fd); - return ret; -} } // namespace RME } // namesapce OHOS diff --git a/interfaces/innerkits/frameintf/frame_msg_intf.cpp b/interfaces/innerkits/frameintf/frame_msg_intf.cpp index 0f2d500..d4e2b1a 100644 --- a/interfaces/innerkits/frameintf/frame_msg_intf.cpp +++ b/interfaces/innerkits/frameintf/frame_msg_intf.cpp @@ -123,11 +123,6 @@ void FrameMsgIntf::ReportCgroupChange(const int pid, const int uid, const int ol }); } -void FrameMsgIntf::ReportSlideEvent(const int pid, const int uid, const int64_t status) -{ - return; -} - void FrameMsgIntf::Stop() { std::lock_guard autoLock(frameMsgIntfMutex_); diff --git a/interfaces/innerkits/frameintf/frame_msg_intf.h b/interfaces/innerkits/frameintf/frame_msg_intf.h index 0e320ae..199f250 100644 --- a/interfaces/innerkits/frameintf/frame_msg_intf.h +++ b/interfaces/innerkits/frameintf/frame_msg_intf.h @@ -32,7 +32,6 @@ public: void ReportCgroupChange(const int pid, const int uid, const int oldGroup, const int newGroup); void ReportWindowFocus(const int pid, const int uid, const int isFocus); void ReportRenderThread(const int pid, const int uid, const int renderTid); - void ReportSlideEvent(const int pid, const int uid, const int64_t status); void Stop(); protected: FrameMsgIntf() = default; diff --git a/interfaces/innerkits/frameintf/rtg_interface.cpp b/interfaces/innerkits/frameintf/rtg_interface.cpp index be10382..3f78d20 100644 --- a/interfaces/innerkits/frameintf/rtg_interface.cpp +++ b/interfaces/innerkits/frameintf/rtg_interface.cpp @@ -30,6 +30,7 @@ namespace RME { namespace { constexpr size_t MAX_LENGTH = 100; constexpr size_t MAX_STR_LEN = 100; + constexpr int RTG_TYPE_MAX = 3; } DEFINE_RMELOG_INTELLISENSE("rtg_interface"); @@ -104,6 +105,31 @@ int EnableRtg(bool flag) return 0; }; +int CreateNewRtgGrp(int prioType, int rtNum) +{ + struct rtg_grp_data grp_data; + int ret; + if (g_fd < 0) { + RME_LOGE("Open file /proc/self/sched_rtg_ctrl, errno = %{public}d", errno); + return g_fd; + } + (void)memset_s(&grp_data, sizeof(struct rtg_grp_data), 0, sizeof(struct rtg_grp_data)); + if ((prioType > 0) && (prioType < RTG_TYPE_MAX)) { + grp_data.prio_type = prioType; + } + if (rtNum > 0) { + grp_data.rt_cnt = rtNum; + } + grp_data.rtg_cmd = CMD_CREATE_RTG_GRP; + ret = ioctl(g_fd, CMD_ID_SET_RTG, &grp_data); + if (ret < 0) { + RME_LOGE("create rtg grp failed, errno = %{public}d (%{public}s)", errno, strerror(errno)); + } else { + RME_LOGI("create rtg grp success, get rtg id %{public}d.", ret); + } + return ret; +} + int AddThreadToRtg(int tid, int grpId, int prioType) { if (g_fd < 0) { diff --git a/test/BUILD.gn b/test/BUILD.gn index 9da906e..eded3f2 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -63,10 +63,7 @@ ohos_unittest("rtg_interface_test") { sources = [ "unittest/phone/rtg_interface_test.cpp" ] - include_dirs = [ - "../common/include", - "../frameworks/core/frame_aware_policy/include", - ] + include_dirs = [ "../common/include" ] deps = frame_aware_sched_deps diff --git a/test/unittest/phone/rtg_interface_test.cpp b/test/unittest/phone/rtg_interface_test.cpp index 1a51378..71e917c 100644 --- a/test/unittest/phone/rtg_interface_test.cpp +++ b/test/unittest/phone/rtg_interface_test.cpp @@ -17,7 +17,6 @@ #define private public #define protected public -#include "intellisense_server.h" #include "rtg_interface.h" #undef private #undef protected @@ -75,7 +74,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceCreateAndDestroy, TestSize.Level1) { int ret; int grpId; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(NORMAL_TASK, 0); + grpId = CreateNewRtgGrp(NORMAL_TASK, 0); EXPECT_GT(grpId, 0); ret = DestroyRtgGrp(grpId); EXPECT_EQ(ret, 0); @@ -103,7 +102,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceAddRtg, TestSize.Level1) int ret; int grpId; int pid = getpid(); - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = AddThreadToRtg(pid, grpId); EXPECT_EQ(ret, 0); @@ -120,7 +119,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceAddErrorThread, TestSize.Level1) { int ret; int grpId; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = AddThreadToRtg(-1, grpId); EXPECT_NE(ret, 0); @@ -153,7 +152,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceAddRtgs, TestSize.Level1) int pid = getpid(); vector pids = {}; pids.push_back(pid); - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = AddThreadsToRtg(pids, grpId); EXPECT_EQ(ret, 0); @@ -171,7 +170,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceClearRtg, TestSize.Level1) int ret; int grpId; int pid = getpid(); - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = AddThreadToRtg(pid, grpId); EXPECT_EQ(ret, 0); @@ -202,7 +201,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceBeginFrameFreq, TestSize.Level1) { int ret; int grpId; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = BeginFrameFreq(grpId, 0); EXPECT_EQ(ret, 0); @@ -231,7 +230,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceEndFrameFreq, TestSize.Level1) { int ret; int grpId; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = EndFrameFreq(grpId); EXPECT_EQ(ret, 0); @@ -260,7 +259,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceEndScene, TestSize.Level1) { int ret; int grpId; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = EndScene(grpId); EXPECT_EQ(ret, 0); @@ -289,7 +288,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceSetMinUtil, TestSize.Level1) { int ret; int grpId; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = SetMinUtil(grpId, 0); EXPECT_EQ(ret, 0); @@ -318,7 +317,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceSetMargin, TestSize.Level1) { int ret; int grpId; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = SetMargin(grpId, 0); EXPECT_EQ(ret, 0); @@ -348,7 +347,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceListRtgThread, TestSize.Level1) int ret; int grpId; vector rs; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = ListRtgThread(grpId, &rs); EXPECT_EQ(ret, 0); @@ -365,7 +364,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceListRtgThreadWithNullRes, TestSize.Level1 { int ret; int grpId; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = ListRtgThread(grpId, nullptr); EXPECT_NE(ret, 0); @@ -420,7 +419,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceSetAttr, TestSize.Level1) { int ret; int grpId; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = SetFrameRateAndPrioType(grpId, 60, VIP); EXPECT_EQ(ret, 0); @@ -437,7 +436,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceSetErrorAttr, TestSize.Level1) { int ret; int grpId; - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(VIP, 0); + grpId = CreateNewRtgGrp(VIP, 0); EXPECT_GT(grpId, 0); ret = SetFrameRateAndPrioType(grpId, 90, -1); EXPECT_NE(ret, 0); @@ -501,7 +500,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceAddMultipleThreads, TestSize.Level1) } threads.push_back(pid[i]); } - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(NORMAL_TASK, 0); + grpId = CreateNewRtgGrp(NORMAL_TASK, 0); EXPECT_GT(grpId, 0); ret = AddThreadsToRtg(threads, grpId); EXPECT_EQ(ret, 0); @@ -529,7 +528,7 @@ HWTEST_F(RtgInterfaceTest, RtgInterfaceAddMultipleThreadsOutOfLimit, TestSize.Le } threads.push_back(pid[i]); } - grpId = IntelliSenseServer::GetInstance().CreateNewRtgGrp(NORMAL_TASK, 0); + grpId = CreateNewRtgGrp(NORMAL_TASK, 0); EXPECT_GT(grpId, 0); ret = AddThreadsToRtg(threads, grpId); EXPECT_NE(ret, 0); -- Gitee