[SWDEV-533305] Remove partition info from amd-smi static (-p/--partition still available) + CLI API call cleanup (#529)

Updates:
- Separate extra APIs calls from amd-smi CLI to target specific CLI commands that need them.
- Remove extra current_compute_partition SYSFS calls from amd-smi static.
- Remove the partition information from the default `amd-smi static` CLI command.
- Users must now use the `-p` argument to view partition information with `amd-smi static`.
- The help text for the `partition` argument has been updated to reflect this change.
- The partition information can still be accessed using the `amd-smi partition -c -m` or `sudo amd-smi partition -a` commands.

---------

Signed-off-by: Charis Poag <Charis.Poag@amd.com>
This commit is contained in:
Poag, Charis
2025-07-07 11:21:46 -05:00
committed by GitHub
parent 8039ab9449
commit 88473b7fd0
5 changed files with 112 additions and 62 deletions
+57 -21
View File
@@ -69,7 +69,7 @@ class AMDSMIParser(argparse.ArgumentParser):
"""
def __init__(self, version, list, static, firmware, bad_pages, metric,
process, profile, event, topology, set_value, reset, monitor,
xgmi, partition, ras, default):
xgmi, partition, ras, default, sys_argv=None):
# Helper variables
self.helpers = AMDSMIHelpers()
@@ -118,25 +118,58 @@ class AMDSMIParser(argparse.ArgumentParser):
'reset', 'monitor', 'dmon', 'xgmi', 'partition', 'ras', 'default']
# Add all subparsers
self._add_version_parser(self.subparsers, version)
self._add_list_parser(self.subparsers, list)
self._add_static_parser(self.subparsers, static)
self._add_firmware_parser(self.subparsers, firmware)
self._add_bad_pages_parser(self.subparsers, bad_pages)
self._add_metric_parser(self.subparsers, metric)
self._add_process_parser(self.subparsers, process)
self._add_profile_parser(self.subparsers, profile)
self._add_event_parser(self.subparsers, event)
self._add_topology_parser(self.subparsers, topology)
self._add_set_value_parser(self.subparsers, set_value)
self._add_reset_parser(self.subparsers, reset)
self._add_monitor_parser(self.subparsers, monitor)
self._add_xgmi_parser(self.subparsers, xgmi)
self._add_partition_parser(self.subparsers, partition)
self._add_ras_parser(self.subparsers, ras)
# the default command
self._add_default_parser(self.subparsers, default)
if sys_argv is not None:
if any(arg in sys_argv for arg in ['--help', '-h']):
self._add_version_parser(self.subparsers, version)
self._add_list_parser(self.subparsers, list)
self._add_static_parser(self.subparsers, static)
self._add_firmware_parser(self.subparsers, firmware)
self._add_bad_pages_parser(self.subparsers, bad_pages)
self._add_metric_parser(self.subparsers, metric)
self._add_process_parser(self.subparsers, process)
self._add_profile_parser(self.subparsers, profile)
self._add_event_parser(self.subparsers, event)
self._add_topology_parser(self.subparsers, topology)
self._add_set_value_parser(self.subparsers, set_value)
self._add_reset_parser(self.subparsers, reset)
self._add_monitor_parser(self.subparsers, monitor)
self._add_xgmi_parser(self.subparsers, xgmi)
self._add_partition_parser(self.subparsers, partition)
self._add_ras_parser(self.subparsers, ras)
elif any(arg in sys_argv for arg in ['version']):
self._add_version_parser(self.subparsers, version)
elif any(arg in sys_argv for arg in ['list']):
self._add_list_parser(self.subparsers, list)
elif any(arg in sys_argv for arg in ['static']):
self._add_static_parser(self.subparsers, static)
elif any(arg in sys_argv for arg in ['firmware', 'ucode']):
self._add_firmware_parser(self.subparsers, firmware)
elif any(arg in sys_argv for arg in ['bad-pages']):
self._add_bad_pages_parser(self.subparsers, bad_pages)
elif any(arg in sys_argv for arg in ['metric']):
self._add_metric_parser(self.subparsers, metric)
elif any(arg in sys_argv for arg in ['process']):
self._add_process_parser(self.subparsers, process)
elif any(arg in sys_argv for arg in ['profile']):
self._add_profile_parser(self.subparsers, profile)
elif any(arg in sys_argv for arg in ['event']):
self._add_event_parser(self.subparsers, event)
elif any(arg in sys_argv for arg in ['topology']):
self._add_topology_parser(self.subparsers, topology)
elif any(arg in sys_argv for arg in ['set', 'reset']):
self._add_set_value_parser(self.subparsers, set_value)
self._add_reset_parser(self.subparsers, reset)
elif any(arg in sys_argv for arg in ['monitor', 'dmon']):
self._add_monitor_parser(self.subparsers, monitor)
elif any(arg in sys_argv for arg in ['xgmi']):
self._add_xgmi_parser(self.subparsers, xgmi)
elif any(arg in sys_argv for arg in ['partition']):
self._add_partition_parser(self.subparsers, partition)
elif any(arg in sys_argv for arg in ['ras']):
self._add_ras_parser(self.subparsers, ras)
else:
# If no subcommand is given, add the default parser
self._add_default_parser(self.subparsers, default)
def _not_negative_int(self, int_value, sub_arg=None):
# Argument type validator
@@ -733,7 +766,10 @@ class AMDSMIParser(argparse.ArgumentParser):
# Might be able to remove Sudo requirement in ROCm 7.0
ras_help = "Displays RAS features information;\n\tSudo may be required for some features"
numa_help = "All numa node information" # Linux Baremetal only
partition_help = "Partition information"
partition_help = "Partition information:\n\t" \
"No longer available in default output.\n\tArgument is required to display." \
"\n\tEx. `amd-smi static -p` or use" \
"\n\t`amd-smi partition -c -m`/`sudo amd-smi partition -a`"
# Options arguments help text for Hypervisors
dfc_help = "All DFC FW table information"