Merge amd-staging into amd-master 20231214

Signed-off-by: guanyu12 <guanyu12@amd.com>
Change-Id: Iebd82680b7ed56abf84ad71a92a267a90a488aa6


[ROCm/rocm_smi_lib commit: 4b17a34716]
This commit is contained in:
guanyu12
2023-12-14 19:31:42 +08:00
4 changed files with 30 additions and 10 deletions
+1
View File
@@ -0,0 +1 @@
* @bill-shuzhou-liu @dmitrii-galantsev @charis-poag-amd @oliveiradan
+7 -5
View File
@@ -4836,15 +4836,11 @@ rsmi_dev_memory_partition_set(uint32_t dv_ind,
<< devInfoTypesStrings.at(amd::smi::kDevMemoryPartition)
<< " | Cause: device board name does not support this action"
<< " | Returning = "
<< getRSMIStatusString(RSMI_STATUS_INVALID_ARGS) << " |";
<< getRSMIStatusString(RSMI_STATUS_NOT_SUPPORTED) << " |";
LOG_ERROR(ss);
return RSMI_STATUS_NOT_SUPPORTED;
}
std::string newMemoryPartition
= mapRSMIToStringMemoryPartitionTypes.at(memory_partition);
std::string currentMemoryPartition;
switch (memory_partition) {
case RSMI_MEMORY_PARTITION_NPS1:
case RSMI_MEMORY_PARTITION_NPS2:
@@ -4865,6 +4861,9 @@ rsmi_dev_memory_partition_set(uint32_t dv_ind,
LOG_ERROR(ss);
return RSMI_STATUS_INVALID_ARGS;
}
std::string newMemoryPartition
= mapRSMIToStringMemoryPartitionTypes.at(memory_partition);
std::string currentMemoryPartition;
// do nothing if memory_partition is the current mode
rsmi_status_t ret_get = get_memory_partition(dv_ind, currentMemoryPartition);
@@ -4907,6 +4906,9 @@ rsmi_dev_memory_partition_set(uint32_t dv_ind,
if (amd::smi::ErrnoToRsmiStatus(ret) != RSMI_STATUS_SUCCESS) {
rsmi_status_t err = amd::smi::ErrnoToRsmiStatus(ret);
if (ret == EACCES) {
err = RSMI_STATUS_NOT_SUPPORTED; // already verified permissions
}
ss << __PRETTY_FUNCTION__
<< " | ======= end ======= "
<< " | Fail "
@@ -237,8 +237,10 @@ void TestComputePartitionReadWrite::Run(void) {
}
// Verify api support checking functionality is working
err = rsmi_dev_compute_partition_set(dv_ind,
RSMI_COMPUTE_PARTITION_INVALID);
rsmi_compute_partition_type_t breakMe;
err = rsmi_dev_compute_partition_set(dv_ind, breakMe);
std::cout << "\t**rsmi_dev_compute_partition_set(null ptr): "
<< amd::smi::getRSMIStatusString(err, false) << "\n";
ASSERT_TRUE((err == RSMI_STATUS_INVALID_ARGS) ||
(err == RSMI_STATUS_NOT_SUPPORTED) ||
(err == RSMI_STATUS_PERMISSION));
@@ -53,6 +53,7 @@
#include "gtest/gtest.h"
#include "rocm_smi/rocm_smi.h"
#include "rocm_smi_test/functional/memorypartition_read_write.h"
#include "rocm_smi/rocm_smi_utils.h"
#include "rocm_smi_test/test_common.h"
TestMemoryPartitionReadWrite::TestMemoryPartitionReadWrite() : TestBase() {
@@ -123,6 +124,7 @@ void TestMemoryPartitionReadWrite::Run(void) {
}
for (uint32_t dv_ind = 0; dv_ind < num_monitor_devs(); ++dv_ind) {
bool wasSetSuccess = false;
if (dv_ind != 0) {
IF_VERB(STANDARD) {
std::cout << std::endl;
@@ -197,8 +199,10 @@ void TestMemoryPartitionReadWrite::Run(void) {
/* rsmi_dev_memory_partition_set(...) */
/******************************/
// Verify api support checking functionality is working
rsmi_memory_partition_type new_memory_partition;
rsmi_memory_partition_type new_memory_partition = {};
err = rsmi_dev_memory_partition_set(dv_ind, new_memory_partition);
std::cout << "\t**rsmi_dev_memory_partition_set(null ptr): "
<< amd::smi::getRSMIStatusString(err, false) << "\n";
// Note: new_memory_partition is not set
ASSERT_TRUE((err == RSMI_STATUS_INVALID_ARGS) ||
(err == RSMI_STATUS_NOT_SUPPORTED));
@@ -264,7 +268,18 @@ void TestMemoryPartitionReadWrite::Run(void) {
<< memoryPartitionString(new_memory_partition) << std::endl;
}
ret = rsmi_dev_memory_partition_set(dv_ind, new_memory_partition);
CHK_ERR_ASRT(ret)
if (ret == RSMI_STATUS_NOT_SUPPORTED) {
IF_VERB(STANDARD) {
std::cout << "\t**" << ": "
<< "Not supported on this machine" << std::endl;
}
break;
} else {
CHK_ERR_ASRT(ret)
}
if (ret != RSMI_STATUS_SUCCESS) { // do not continue trying to reset
wasSetSuccess = true;
}
ret = rsmi_dev_memory_partition_get(dv_ind, current_memory_partition,
255);
@@ -301,7 +316,7 @@ void TestMemoryPartitionReadWrite::Run(void) {
<< "Current memory partition: " << current_memory_partition
<< std::endl;
}
if (wasResetSuccess) {
if (wasResetSuccess && wasSetSuccess) {
ASSERT_STRNE(oldMode.c_str(), current_memory_partition);
IF_VERB(STANDARD) {
std::cout << "\t**"