Skip to content

Commit 699890a

Browse files
authored
Fix for XGMI and SOC policies KeyError (#823)
Fix for amd-smi XGMI and SOC policies errors Signed-off-by: Yazen AL Musaffar <[email protected]>
1 parent d737266 commit 699890a

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

amdsmi_cli/amdsmi_helpers.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -844,12 +844,17 @@ def get_soc_pstates(self):
844844
for dev in device_handles:
845845
try:
846846
soc_pstate_info = amdsmi_interface.amdsmi_get_soc_pstate(dev)
847+
# Check if 'policies' key exists before accessing it
848+
if 'policies' in soc_pstate_info and soc_pstate_info['policies']:
849+
for policy in soc_pstate_info['policies']:
850+
policy_string = f"{policy['policy_id']}: {policy['policy_description']}"
851+
if not policy_string in soc_pstate_profile_list:
852+
soc_pstate_profile_list.append(policy_string)
847853
except amdsmi_interface.AmdSmiLibraryException as e:
848854
continue
849-
for policy in soc_pstate_info['policies']:
850-
policy_string = f"{policy['policy_id']}: {policy['policy_description']}"
851-
if not policy_string in soc_pstate_profile_list:
852-
soc_pstate_profile_list.append(policy_string)
855+
except KeyError as e:
856+
logging.debug(f"AMDSMIHelpers.get_soc_pstates - Missing key in soc_pstate_info: {e}")
857+
continue
853858
if len(soc_pstate_profile_list) == 0:
854859
soc_pstate_profile_list.append("N/A")
855860
return soc_pstate_profile_list
@@ -861,12 +866,17 @@ def get_xgmi_plpd_policies(self):
861866
for dev in device_handles:
862867
try:
863868
xgmi_plpd_info = amdsmi_interface.amdsmi_get_xgmi_plpd(dev)
869+
# Check if 'policies' key exists before accessing it
870+
if 'policies' in xgmi_plpd_info and xgmi_plpd_info['policies']:
871+
for policy in xgmi_plpd_info['policies']:
872+
policy_string = f"{policy['policy_id']}: {policy['policy_description']}"
873+
if not policy_string in xgmi_plpd_profile_list:
874+
xgmi_plpd_profile_list.append(policy_string)
864875
except amdsmi_interface.AmdSmiLibraryException as e:
865876
continue
866-
for policy in xgmi_plpd_info['policies']:
867-
policy_string = f"{policy['policy_id']}: {policy['policy_description']}"
868-
if not policy_string in xgmi_plpd_profile_list:
869-
xgmi_plpd_profile_list.append(policy_string)
877+
except KeyError as e:
878+
logging.debug(f"AMDSMIHelpers.get_xgmi_plpd_policies - Missing key in xgmi_plpd_info: {e}")
879+
continue
870880
if len(xgmi_plpd_profile_list) == 0:
871881
xgmi_plpd_profile_list.append("N/A")
872882
return xgmi_plpd_profile_list

0 commit comments

Comments
 (0)