diff --git a/interfaces/innerkits/common/libsamgr_common.versionscript b/interfaces/innerkits/common/libsamgr_common.versionscript index 025c4f75add0bc3d1cc059607a6572d794a61424..7fc5957c5714e4263bd418d96ebf00d0a3626e8f 100644 --- a/interfaces/innerkits/common/libsamgr_common.versionscript +++ b/interfaces/innerkits/common/libsamgr_common.versionscript @@ -27,6 +27,7 @@ *ReportProcessStartDuration*; *ReportProcessStopDuration*; *ReportSAIdle*; + *ReportMemBeyondBaseline*; local: *; }; \ No newline at end of file diff --git a/services/dfx/include/hisysevent_adapter.h b/services/dfx/include/hisysevent_adapter.h index e8a71392c3ba2beee99e85d92349d139bd5d9561..1c4ad7e7dbb3786df4001a0d770d4c8df09a471e 100644 --- a/services/dfx/include/hisysevent_adapter.h +++ b/services/dfx/include/hisysevent_adapter.h @@ -50,5 +50,7 @@ void ReportProcessStartDuration(const std::string& processName, int32_t pid, int void ReportProcessStopDuration(const std::string& processName, int32_t pid, int32_t uid, int64_t duration); void ReportSAIdle(int32_t said, const std::string& reason); + +void ReportMemBeyondBaseline(int32_t pid, uint64_t pssMem); } // OHOS #endif // SAMGR_SERVICES_DFX_INCLUDE__HISYSEVENT_ADAPTER_H diff --git a/services/dfx/source/hisysevent_adapter.cpp b/services/dfx/source/hisysevent_adapter.cpp index d79b180b07e83f1dd9c5699dd4a0b5ec63a1a4aa..cf466d7a5a78d9cb618b6571f16e03b44ae0b05d 100644 --- a/services/dfx/source/hisysevent_adapter.cpp +++ b/services/dfx/source/hisysevent_adapter.cpp @@ -54,6 +54,8 @@ constexpr const char* PID = "PID"; constexpr const char* UID = "UID"; constexpr const char* DURATION = "DURATION"; constexpr const char* KEY_STAGE = "KEY_STAGE"; +constexpr const char* MEMORY_BEYOND_BASELINE = "MEMORY_BEYOND_BASELINE"; +constexpr const char* PSS_MEM = "PSS_MEM"; } void ReportSaCrash(int32_t saId) @@ -262,4 +264,16 @@ void ReportSAIdle(int32_t said, const std::string& reason) HILOGE("hisysevent report sa idle failed! ret %{public}d.", ret); } } + +void ReportMemBeyondBaseline(int32_t pid, uint64_t pssMem) +{ + int ret = HiSysEventWrite(HiSysEvent::Domain::SAMGR, + MEMORY_BEYOND_BASELINE, + HiSysEvent::EventType::STATISTIC, + PID, pid, + PSS_MEM, pssMem); + if (ret != 0) { + HILOGE("hisysevent report memory beyond baseline failed ret %{public}d.", ret); + } +} } // OHOS