[SWDEV-418701] rsmitst Fallback with Driver-less Hardware (#329)

Signed-off-by: josnarlo <Joseph.Narlo@amd.com>

[ROCm/amdsmi commit: a66c6fa03b]
Цей коміт міститься в:
Narlo, Joseph
2025-05-09 12:33:13 -05:00
зафіксовано GitHub
джерело 8efac974e5
коміт 7a64038110
4 змінених файлів з 47 додано та 2 видалено
+1
Переглянути файл
@@ -386,6 +386,7 @@ void TestComputePartitionReadWrite::Run(void) {
std::cout << "** SetUp Failed for this test. Skipping.**" << std::endl;
return;
}
bool isVerbose = (this->verbosity() &&
this->verbosity() >= (this->TestBase::VERBOSE_STANDARD)) ? true: false;
// Confirm system supports compute partition, before executing wait
+1 -2
Переглянути файл
@@ -71,8 +71,7 @@ void TestEvtNotifReadWrite::Run(void) {
if (setup_failed_) {
IF_VERB(STANDARD) {
std::cout << "** SetUp Failed for this test. Skipping.**" <<
std::endl;
std::cout << "** SetUp Failed for this test. Skipping.**" << std::endl;
}
return;
}
+13
Переглянути файл
@@ -122,6 +122,7 @@ TEST(amdsmitstReadOnly, FanRead) {
RunGenericTest(&tst);
}
TEST(amdsmitstReadWrite, FanReadWrite) {
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestFanReadWrite tst;
RunGenericTest(&tst);
}
@@ -144,6 +145,7 @@ TEST(amdsmitstReadOnly, TestPerfLevelRead) {
}
TEST(amdsmitstReadWrite, TestPerfLevelReadWrite) {
if (amd::smi::is_vm_guest()) GTEST_SKIP();
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestPerfLevelReadWrite tst;
RunGenericTest(&tst);
}
@@ -152,6 +154,7 @@ TEST(amdsmitstReadOnly, TestOverdriveRead) {
RunGenericTest(&tst);
}
TEST(amdsmitstReadWrite, TestOverdriveReadWrite) {
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestOverdriveReadWrite tst;
RunGenericTest(&tst);
}
@@ -160,11 +163,13 @@ TEST(amdsmitstReadOnly, TestFrequenciesRead) {
RunGenericTest(&tst);
}
TEST(amdsmitstReadWrite, TestFrequenciesReadWrite) {
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestFrequenciesReadWrite tst;
RunGenericTest(&tst);
}
TEST(amdsmitstReadWrite, TestPciReadWrite) {
if (amd::smi::is_vm_guest()) GTEST_SKIP();
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestPciReadWrite tst;
RunGenericTest(&tst);
}
@@ -184,11 +189,13 @@ TEST(amdsmitstReadOnly, TestPowerRead) {
}
TEST(amdsmitstReadWrite, TestPowerReadWrite) {
if (amd::smi::is_vm_guest()) GTEST_SKIP();
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestPowerReadWrite tst;
RunGenericTest(&tst);
}
TEST(amdsmitstReadWrite, TestPowerCapReadWrite) {
if (amd::smi::is_vm_guest()) GTEST_SKIP();
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestPowerCapReadWrite tst;
RunGenericTest(&tst);
}
@@ -206,6 +213,7 @@ TEST(amdsmitstReadOnly, TestIdInfoRead) {
RunGenericTest(&tst);
}
TEST(amdsmitstReadWrite, TestPerfCntrReadWrite) {
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestPerfCntrReadWrite tst;
RunGenericTest(&tst);
}
@@ -226,10 +234,12 @@ TEST(amdsmitstReadOnly, TestMetricsCounterRead) {
RunGenericTest(&tst);
}
TEST(amdsmitstReadWrite, TestPerfDeterminism) {
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestPerfDeterminism tst;
RunGenericTest(&tst);
}
TEST(amdsmitstReadWrite, TestXGMIReadWrite) {
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestXGMIReadWrite tst;
RunGenericTest(&tst);
}
@@ -253,16 +263,19 @@ TEST(amdsmitstReadOnly, TestMutualExclusion) {
*/
TEST(amdsmitstReadWrite, TestComputePartitionReadWrite) {
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestComputePartitionReadWrite tst;
RunGenericTest(&tst);
}
TEST(amdsmitstReadWrite, TestMemoryPartitionReadWrite) {
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestMemoryPartitionReadWrite tst;
RunGenericTest(&tst);
}
TEST(amdsmitstReadWrite, TestEvtNotifReadWrite) {
if (!amd::smi::is_sudo_user()) GTEST_SKIP_("Invalid permission - Must run as super user");
TestEvtNotifReadWrite tst;
RunGenericTest(&tst);
}
+32
Переглянути файл
@@ -26,6 +26,7 @@
#include "amd_smi/amdsmi.h"
#include "amd_smi/impl/amd_smi_utils.h"
#include "rocm_smi/rocm_smi_utils.h"
#include "test_base.h"
#include "test_common.h"
@@ -40,6 +41,14 @@ static const char kResultsLabel[] = "TEST RESULTS";
// This one is used outside this file
const char kSetupLabel[] = "TEST SETUP";
static bool CheckModule(const std::string &fileName, const std::string &cond) {
std::string state;
int rc = amd::smi::ReadSysfsStr(fileName, &state);
if (!rc && !state.compare(cond))
return (true);
return (false);
}
TestBase::TestBase() : setup_failed_(false) {
}
TestBase::~TestBase() = default;
@@ -79,6 +88,29 @@ void TestBase::SetUp(uint64_t init_flags) {
if (err != AMDSMI_STATUS_SUCCESS) {
setup_failed_ = true;
// Returns true if amdgpu is found in the list of initialized modules
bool found_amdgpu = CheckModule("/sys/module/amdgpu/initstate", "live");
if (!found_amdgpu) {
IF_VERB(STANDARD) {
std::cerr << "ERROR: Unable to get devices, driver not initialized (amdgpu not found in modules)" << std::endl;
std::cerr << "ERROR: Unable to detect any GPU devices, check amdgpu version and module status (sudo modprobe amdgpu)" << std::endl;
}
}
// Returns true if amd_hsmp is found in the list of initialized modules
bool found_amd_hsmp = CheckModule("/sys/module/amd_hsmp/initstate", "live");
if (!found_amd_hsmp) {
IF_VERB(STANDARD) {
std::cerr << "ERROR: Unable to get devices, driver not initialized (amd_hsmp not found in modules)" << std::endl;
std::cerr << "ERROR: Unable to detect any CPU devices, check amd_hsmp version and module status (sudo modprobe amd_hsmp)" << std::endl;
}
}
if (!found_amdgpu || !found_amd_hsmp) {
ASSERT_EQ(err, AMDSMI_STATUS_SUCCESS);
exit(err);
}
}
ASSERT_EQ(err, AMDSMI_STATUS_SUCCESS);