From 8554f0df141d0c5ad5d71d4aa8607e51810eebd7 Mon Sep 17 00:00:00 2001 From: Yifan Zhang Date: Thu, 23 Feb 2023 13:51:51 +0800 Subject: [PATCH] kfdtest: add MES judging API in test utility. Signed-off-by: Yifan Zhang Change-Id: I978fc85b7c81ea65b97953a50d2d0312bcba95bf [ROCm/ROCR-Runtime commit: 564913526a17318e9ce2c4077c54be76b1c1503f] --- .../rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.cpp | 5 +++++ .../rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.hpp | 1 + projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.cpp | 5 +++++ projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.hpp | 1 + 4 files changed, 12 insertions(+) diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.cpp b/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.cpp index bb510e040b..a286f21983 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.cpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.cpp @@ -164,6 +164,11 @@ unsigned int KFDBaseComponentTest::GetFamilyIdFromNodeId(unsigned int nodeId) return FamilyIdFromNode(m_NodeInfo.GetNodeProperties(nodeId)); } +bool KFDBaseComponentTest::isMES(unsigned int nodeId) +{ + return CheckMES(m_NodeInfo.GetNodeProperties(nodeId)); +} + int KFDBaseComponentTest::FindDRMRenderNode(int gpuNode) { HsaNodeProperties *nodeProperties; _HSAKMT_STATUS status; diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.hpp b/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.hpp index cc87465ad5..2f9d8350e2 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.hpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.hpp @@ -58,6 +58,7 @@ class KFDBaseComponentTest : public testing::Test { // @return DRM Render Node if successful or -1 on failure int FindDRMRenderNode(int gpuNode); unsigned int GetFamilyIdFromNodeId(unsigned int nodeId); + bool isMES(unsigned int nodeId); unsigned int GetFamilyIdFromDefaultNode(){ return m_FamilyId; } // @brief Executed before the first test that uses KFDBaseComponentTest. diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.cpp b/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.cpp index fc8bd0248e..5a0401dd15 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.cpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.cpp @@ -234,6 +234,11 @@ bool isTonga(const HsaNodeProperties *props) { return false; } +bool CheckMES(const HsaNodeProperties *props) { + /* MES devices need GART mappings and therefore need non-paged memory */ + return (props->EngineId.ui32.Major >= 11) ? true : false; +} + const uint32_t GetGfxVersion(const HsaNodeProperties *props) { return ((props->EngineId.ui32.Major << 16) | (props->EngineId.ui32.Minor << 8) | diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.hpp b/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.hpp index 938ff8bf69..a9f6c9d9be 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.hpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.hpp @@ -50,6 +50,7 @@ HSAKMT_STATUS CreateQueueTypeEvent(bool ManualReset, bool IsSignaled, unsigned i bool is_dgpu(); bool isTonga(const HsaNodeProperties *props); +bool CheckMES(const HsaNodeProperties *props); bool hasPciAtomicsSupport(int node); unsigned int FamilyIdFromNode(const HsaNodeProperties *props); const uint32_t GetGfxVersion(const HsaNodeProperties *props);