From f8d8b8011fe80d7adbfaeabc605e2d8bb6ec3065 Mon Sep 17 00:00:00 2001 From: James Zhu Date: Wed, 19 Feb 2025 11:11:57 -0500 Subject: [PATCH] kfdtest: fix resource leakage Resource allocated in SetUp/HsaNodeInfo::Init, needs be delete in TearDown/HsaNodeInfo::Delete. Signed-off-by: James Zhu --- libhsakmt/tests/kfdtest/src/KFDBaseComponentTest.cpp | 1 + libhsakmt/tests/kfdtest/src/KFDTestUtil.cpp | 8 +++++++- libhsakmt/tests/kfdtest/src/KFDTestUtil.hpp | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libhsakmt/tests/kfdtest/src/KFDBaseComponentTest.cpp b/libhsakmt/tests/kfdtest/src/KFDBaseComponentTest.cpp index 2234356f2e..aeec4d253e 100644 --- a/libhsakmt/tests/kfdtest/src/KFDBaseComponentTest.cpp +++ b/libhsakmt/tests/kfdtest/src/KFDBaseComponentTest.cpp @@ -166,6 +166,7 @@ void KFDBaseComponentTest::TearDown() { closelog(); + m_NodeInfo.Delete(); ROUTINE_END } diff --git a/libhsakmt/tests/kfdtest/src/KFDTestUtil.cpp b/libhsakmt/tests/kfdtest/src/KFDTestUtil.cpp index 46881040ae..bebac15860 100644 --- a/libhsakmt/tests/kfdtest/src/KFDTestUtil.cpp +++ b/libhsakmt/tests/kfdtest/src/KFDTestUtil.cpp @@ -609,13 +609,19 @@ bool HsaNodeInfo::Init(int NumOfNodes) { return ret; } -HsaNodeInfo::~HsaNodeInfo() { +void HsaNodeInfo::Delete() { const HsaNodeProperties *nodeProperties; for (unsigned int i = 0; i < m_HsaNodeProps.size(); i++) delete m_HsaNodeProps.at(i); m_HsaNodeProps.clear(); + m_NodesWithGPU.clear(); + m_NodesWithoutGPU.clear(); +} + +HsaNodeInfo::~HsaNodeInfo() { + Delete(); } const std::vector& HsaNodeInfo::GetNodesWithGPU() const { diff --git a/libhsakmt/tests/kfdtest/src/KFDTestUtil.hpp b/libhsakmt/tests/kfdtest/src/KFDTestUtil.hpp index 7565e1b307..3e8cc8c9af 100644 --- a/libhsakmt/tests/kfdtest/src/KFDTestUtil.hpp +++ b/libhsakmt/tests/kfdtest/src/KFDTestUtil.hpp @@ -216,6 +216,7 @@ class HsaNodeInfo { ~HsaNodeInfo(); bool Init(int NumOfNodes); + void Delete(); /* This function should be deprecated soon. This for transistion purpose only * Currently, KfdTest is designed to test only ONE node. This function acts