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:
+1
@@ -0,0 +1 @@
|
||||
* @bill-shuzhou-liu @dmitrii-galantsev @charis-poag-amd @oliveiradan
|
||||
@@ -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**"
|
||||
|
||||
Reference in New Issue
Block a user