From 12eea5f9eb36b8ce35845090c6a5408309c25b43 Mon Sep 17 00:00:00 2001 From: weli-l <1289113577@qq.com> Date: Thu, 12 Jun 2025 02:14:45 +0800 Subject: [PATCH] add getip func for mspti Signed-off-by: weli-l <1289113577@qq.com> --- systrace/include/common/util.cc | 31 ++++++++++++++++++++++++++++ systrace/include/common/util.h | 5 +++++ systrace/src/mspti/mspti_tracker.cpp | 5 ++++- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/systrace/include/common/util.cc b/systrace/include/common/util.cc index a526d0c..c57827c 100644 --- a/systrace/include/common/util.cc +++ b/systrace/include/common/util.cc @@ -249,5 +249,36 @@ void InitializeSystemUtilities() config::InitializeGlobalConfiguration(); } +std::string GetPrimaryIP() +{ + struct ifaddrs *ifaddr, *ifa; + std::string primaryIP; + + if (getifaddrs(&ifaddr) == -1) { + perror("getifaddrs"); + return ""; + } + + for (ifa = ifaddr; ifa != nullptr; ifa = ifa->ifa_next) { + if (ifa->ifa_addr == nullptr || ifa->ifa_addr->sa_family != AF_INET) { + continue; + } + + if (strcmp(ifa->ifa_name, "lo") == 0) { + continue; + } + + struct sockaddr_in *addr = (struct sockaddr_in *)ifa->ifa_addr; + char ip[INET_ADDRSTRLEN]; + inet_ntop(AF_INET, &addr->sin_addr, ip, INET_ADDRSTRLEN); + + primaryIP = ip; + break; + } + + freeifaddrs(ifaddr); + return primaryIP; +} + } // namespace util } // namespace systrace \ No newline at end of file diff --git a/systrace/include/common/util.h b/systrace/include/common/util.h index 67c077a..50c266c 100644 --- a/systrace/include/common/util.h +++ b/systrace/include/common/util.h @@ -13,11 +13,16 @@ #include #include #include +#include +#include +#include +#include namespace systrace { namespace util { +std::string GetPrimaryIP(); namespace config { diff --git a/systrace/src/mspti/mspti_tracker.cpp b/systrace/src/mspti/mspti_tracker.cpp index d6f1285..aa87891 100644 --- a/systrace/src/mspti/mspti_tracker.cpp +++ b/systrace/src/mspti/mspti_tracker.cpp @@ -2,12 +2,14 @@ #include #include #include +#include "../../include/common/util.h" constexpr size_t KB = 1 * 1024; constexpr size_t MB = 1 * 1024 * KB; constexpr size_t ALIGN_SIZE = 8; std::mutex MSPTITracker::mtx; +using namespace systrace::util; inline uint8_t *align_buffer(uint8_t *buffer, size_t align) { @@ -18,8 +20,9 @@ inline uint8_t *align_buffer(uint8_t *buffer, size_t align) MSPTITracker::MSPTITracker() { std::cout << "Logging initialized from preloaded library." << std::endl; + std::string file_name = "hccl_activity-" + systrace::util::GetPrimaryIP() + "-.json"; hcclFileWriter = - std::make_unique("hccl_activity.json"); + std::make_unique(file_name); msptiSubscribe(&subscriber, nullptr, nullptr); msptiActivityRegisterCallbacks(UserBufferRequest, UserBufferComplete); msptiActivityEnable(MSPTI_ACTIVITY_KIND_MARKER); -- Gitee