[SWDEV-488276/SWDEV-497613] Update memory partition set functionality
Changes:
- [CLI] Added warning screen to AMD SMI users
setting memory partition
- [CLI] Added a progress bar time-bar for CLI sets display to 40 seconds
- [API] Updated to wait until the driver reloads with SYSFS files active
- [CLI] Now users can set or reset without providing:
amd-smi set -g all <set arguments>
or amd-smi reset -g all <set arguments>
now can directly call -> sudo amd-smi set <set arguments>
or sudo amd-smi reset <set arguments>
- [SWDEV-475712][CLI/API] Fixed target_graphics_version field
not properly displaying for older MI or Navi ASICs.
- [All APIs] Added a catch for the driver to report invalid arguments
now these APIs will show AMDSMI_STATUS_INVAL
(ex. changing to NPS8 if the device does not support it)
- [Install] Modified paths for Python install commands to support
multi-ROCm installs
Change-Id: Id11f25d68a82d23c6b2d77ccb30b51e860dd0ca7
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
This commit is contained in:
@@ -4596,25 +4596,6 @@ rsmi_status_t
|
||||
rsmi_dev_compute_partition_set(uint32_t dv_ind,
|
||||
rsmi_compute_partition_type_t compute_partition);
|
||||
|
||||
/**
|
||||
* @brief Reverts a selected device's compute partition setting back to its
|
||||
* boot state.
|
||||
*
|
||||
* @details Given a device index @p dv_ind , this function will attempt to
|
||||
* revert its compute partition setting back to its boot state.
|
||||
*
|
||||
* @param[in] dv_ind a device index
|
||||
*
|
||||
* @retval ::RSMI_STATUS_SUCCESS call was successful
|
||||
* @retval ::RSMI_STATUS_PERMISSION function requires root access
|
||||
* @retval ::RSMI_STATUS_NOT_SUPPORTED installed software or hardware does not
|
||||
* support this function
|
||||
* @retval ::RSMI_STATUS_BUSY A resource or mutex could not be acquired
|
||||
* because it is already being used - device is busy
|
||||
*
|
||||
*/
|
||||
rsmi_status_t rsmi_dev_compute_partition_reset(uint32_t dv_ind);
|
||||
|
||||
/**
|
||||
* @brief Retrieves the partition_id for a desired device
|
||||
*
|
||||
@@ -4680,6 +4661,39 @@ rsmi_status_t
|
||||
rsmi_dev_memory_partition_get(uint32_t dv_ind, char *memory_partition,
|
||||
uint32_t len);
|
||||
|
||||
/**
|
||||
* @brief Retrieves the available memory partition capabilities
|
||||
* for a desired device
|
||||
*
|
||||
* @details
|
||||
* Given a device index @p dv_ind and a string @p memory_partition_caps ,
|
||||
* and uint32 @p len , this function will attempt to obtain the device's
|
||||
* available memory partition capabilities string. Upon successful
|
||||
* retreival, the obtained device's available memory partition capablilities
|
||||
* string shall be stored in the passed @p memory_partition_caps
|
||||
* char string variable.
|
||||
*
|
||||
* @param[in] dv_ind a device index
|
||||
*
|
||||
* @param[inout] memory_partition_caps a pointer to a char string variable,
|
||||
* which the device's available memory partition capabilities will be written to.
|
||||
*
|
||||
* @param[in] len the length of the caller provided buffer @p len ,
|
||||
* suggested length is 30 or greater.
|
||||
*
|
||||
* @retval ::RSMI_STATUS_SUCCESS call was successful
|
||||
* @retval ::RSMI_STATUS_INVALID_ARGS the provided arguments are not valid
|
||||
* @retval ::RSMI_STATUS_UNEXPECTED_DATA data provided to function is not valid
|
||||
* @retval ::RSMI_STATUS_NOT_SUPPORTED installed software or hardware does not
|
||||
* support this function
|
||||
* @retval ::RSMI_STATUS_INSUFFICIENT_SIZE is returned if @p len bytes is not
|
||||
* large enough to hold the entire memory partition value. In this case,
|
||||
* only @p len bytes will be written.
|
||||
*
|
||||
*/
|
||||
rsmi_status_t rsmi_dev_memory_partition_capabilities_get(
|
||||
uint32_t dv_ind, char *memory_partition_caps, uint32_t len);
|
||||
|
||||
/**
|
||||
* @brief Modifies a selected device's current memory partition setting.
|
||||
*
|
||||
@@ -4707,27 +4721,6 @@ rsmi_status_t
|
||||
rsmi_dev_memory_partition_set(uint32_t dv_ind,
|
||||
rsmi_memory_partition_type_t memory_partition);
|
||||
|
||||
/**
|
||||
* @brief Reverts a selected device's memory partition setting back to its
|
||||
* boot state.
|
||||
*
|
||||
* @details Given a device index @p dv_ind , this function will attempt to
|
||||
* revert its current memory partition setting back to its boot state.
|
||||
*
|
||||
* @param[in] dv_ind a device index
|
||||
*
|
||||
* @retval ::RSMI_STATUS_SUCCESS call was successful
|
||||
* @retval ::RSMI_STATUS_PERMISSION function requires root access
|
||||
* @retval ::RSMI_STATUS_NOT_SUPPORTED installed software or hardware does not
|
||||
* support this function
|
||||
* @retval ::RSMI_STATUS_AMDGPU_RESTART_ERR could not successfully restart
|
||||
* the amdgpu driver
|
||||
* @retval ::RSMI_STATUS_BUSY A resource or mutex could not be acquired
|
||||
* because it is already being used - device is busy
|
||||
*
|
||||
*/
|
||||
rsmi_status_t rsmi_dev_memory_partition_reset(uint32_t dv_ind);
|
||||
|
||||
/** @} */ // end of memory_partition
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
@@ -182,6 +182,7 @@ enum DevInfoTypes {
|
||||
kDevAvailableComputePartition,
|
||||
kDevComputePartition,
|
||||
kDevMemoryPartition,
|
||||
kDevAvailableMemoryPartition,
|
||||
|
||||
// The information read from pci core sysfs
|
||||
kDevPCieTypeStart = 1000,
|
||||
@@ -245,6 +246,8 @@ class Device {
|
||||
bool DeviceAPISupported(std::string name, uint64_t variant,
|
||||
uint64_t sub_variant);
|
||||
rsmi_status_t restartAMDGpuDriver(void);
|
||||
rsmi_status_t isRestartInProgress(bool *isRestartInProgress,
|
||||
bool *isAMDGPUModuleLive);
|
||||
rsmi_status_t storeDevicePartitions(uint32_t dv_ind);
|
||||
template <typename T> std::string readBootPartitionState(uint32_t dv_ind);
|
||||
rsmi_status_t check_amdgpu_property_reinforcement_query(uint32_t dev_idx, AMDGpuVerbTypes_t verb_type);
|
||||
|
||||
@@ -92,7 +92,8 @@ std::pair<bool, std::string> executeCommand(std::string command,
|
||||
rsmi_status_t storeTmpFile(uint32_t dv_ind, std::string parameterName,
|
||||
std::string stateName, std::string storageData);
|
||||
std::vector<std::string> getListOfAppTmpFiles();
|
||||
bool containsString(std::string originalString, std::string substring);
|
||||
bool containsString(std::string originalString, std::string substring,
|
||||
bool displayComparisons = false);
|
||||
std::tuple<bool, std::string> readTmpFile(
|
||||
uint32_t dv_ind,
|
||||
std::string stateName,
|
||||
@@ -141,6 +142,8 @@ std::string removeNewLines(const std::string &s);
|
||||
|
||||
std::string removeString(const std::string origStr,
|
||||
const std::string &removeMe);
|
||||
void system_wait(int milli_seconds);
|
||||
int countDigit(uint64_t n);
|
||||
template <typename T>
|
||||
std::string print_int_as_hex(T i, bool showHexNotation = true,
|
||||
int overloadBitSize = 0) {
|
||||
|
||||
Reference in New Issue
Block a user