From c3b47c0959efdfd94de166eb727b2fb33c636db7 Mon Sep 17 00:00:00 2001 From: Mike Li Date: Fri, 21 Sep 2018 11:53:23 -0400 Subject: [PATCH] kfdtest: Handle GPU resource management Currently the FindDRMRenderNode function will access the sysfs directly to find the render node. It doesn't work with the GPU management changes. Have changed code to call hsaKmtGetNodeProperties instead. Change-Id: I3bb537a323bc1e8c49f38d8aabc60c13e268aecd Signed-off-by: Mike Li --- tests/kfdtest/src/KFDBaseComponentTest.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/tests/kfdtest/src/KFDBaseComponentTest.cpp b/tests/kfdtest/src/KFDBaseComponentTest.cpp index 2f697ce8aa..44de55b93e 100644 --- a/tests/kfdtest/src/KFDBaseComponentTest.cpp +++ b/tests/kfdtest/src/KFDBaseComponentTest.cpp @@ -126,25 +126,20 @@ HSAuint64 KFDBaseComponentTest::GetVramSize(int defaultGPUNode) { } int KFDBaseComponentTest::FindDRMRenderNode(int gpuNode) { - char path[PATH_MAX], buf[PAGE_SIZE]; + HsaNodeProperties *nodeProperties; + _HSAKMT_STATUS status; - snprintf(path, PATH_MAX, "/sys/class/kfd/kfd/topology/nodes/%d/properties", gpuNode); + nodeProperties = new HsaNodeProperties(); - int fd = open(path, O_RDONLY); + status = hsaKmtGetNodeProperties(gpuNode, nodeProperties); + EXPECT_SUCCESS(status) << "Node index: " << gpuNode << "hsaKmtGetNodeProperties returned status " << status; - if (fd < 0) { - LOG() << "Failed to open " << path << std::endl; + if (status != HSAKMT_STATUS_SUCCESS) { + delete nodeProperties; return -EINVAL; } - read(fd, buf, PAGE_SIZE); - - close(fd); - - char *s = strstr(buf, "drm_render_minor"); - - int minor = atoi(s + 17); - + int minor = nodeProperties->DrmRenderMinor; if (minor < 128) { LOG() << "Failed to get minor number " << minor << std::endl; return -EINVAL;