From b07c57b2cdd9c141573891f5ef952d21b6b6b2e6 Mon Sep 17 00:00:00 2001 From: Joe Narlo Date: Tue, 12 Nov 2024 09:35:44 -0600 Subject: [PATCH] SWDEV-497305 [AMDSMI] Consistent string lengths Unify max string length to AMDSMI_MAX_STRING_LENGTH 256 Replace AMDSMI_NORMAL_STRING_LENGTH, AMDSMI_256_LENGTH Signed-off-by: Joe Narlo Change-Id: Ia81d738be0eefb9683ee53d51c969598fe587f50 [ROCm/amdsmi commit: 35d8e827b97c21af3aced63b630c84d4477e56ad] --- projects/amdsmi/include/amd_smi/amdsmi.h | 32 ++++++++--------- .../amdsmi/py-interface/amdsmi_wrapper.py | 35 +++++++++---------- 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/projects/amdsmi/include/amd_smi/amdsmi.h b/projects/amdsmi/include/amd_smi/amdsmi.h index ea90d54146..1b17643ef9 100644 --- a/projects/amdsmi/include/amd_smi/amdsmi.h +++ b/projects/amdsmi/include/amd_smi/amdsmi.h @@ -58,12 +58,12 @@ typedef enum { /* Maximum size definitions AMDSMI */ #define AMDSMI_MAX_MM_IP_COUNT 8 #define AMDSMI_MAX_DATE_LENGTH 32 /**< YYYY-MM-DD:HH:MM:SS.MSC */ -#define AMDSMI_MAX_STRING_LENGTH 64 -#define AMDSMI_NORMAL_STRING_LENGTH 32 +#define AMDSMI_MAX_STRING_LENGTH 256 +#define AMDSMI_NORMAL_STRING_LENGTH AMDSMI_MAX_STRING_LENGTH // Deprecated +#define AMDSMI_256_LENGTH AMDSMI_MAX_STRING_LENGTH // Deprecated #define AMDSMI_MAX_DEVICES 32 #define AMDSMI_MAX_NAME 32 #define AMDSMI_MAX_DRIVER_VERSION_LENGTH 80 -#define AMDSMI_256_LENGTH 256 #define AMDSMI_MAX_CONTAINER_TYPE 2 #define AMDSMI_MAX_CACHE_TYPES 10 #define AMDSMI_MAX_NUM_XGMI_PHYSICAL_LINK 64 @@ -589,8 +589,8 @@ typedef struct { char name[AMDSMI_MAX_STRING_LENGTH]; char build_date[AMDSMI_MAX_DATE_LENGTH]; char part_number[AMDSMI_MAX_STRING_LENGTH]; - char version[AMDSMI_NORMAL_STRING_LENGTH]; - uint32_t reserved[16]; + char version[AMDSMI_MAX_STRING_LENGTH]; + uint64_t reserved[32]; } amdsmi_vbios_info_t; /** @@ -628,17 +628,17 @@ typedef struct { } amdsmi_fw_info_t; typedef struct { - char market_name[AMDSMI_256_LENGTH]; + char market_name[AMDSMI_MAX_STRING_LENGTH]; uint32_t vendor_id; //< Use 32 bit to be compatible with other platform. char vendor_name[AMDSMI_MAX_STRING_LENGTH]; uint32_t subvendor_id; //< The subsystem vendor id uint64_t device_id; //< The device id of a GPU uint32_t rev_id; - char asic_serial[AMDSMI_NORMAL_STRING_LENGTH]; + char asic_serial[AMDSMI_MAX_STRING_LENGTH]; uint32_t oam_id; //< 0xFFFF if not supported uint32_t num_of_compute_units; //< 0xFFFFFFFF if not supported uint64_t target_graphics_version; //< 0xFFFFFFFFFFFFFFFF if not supported - uint32_t reserved[15]; + uint32_t reserved[22]; } amdsmi_asic_info_t; typedef struct { @@ -716,12 +716,12 @@ typedef struct { } amdsmi_driver_info_t; typedef struct { - char model_number[AMDSMI_256_LENGTH]; - char product_serial[AMDSMI_NORMAL_STRING_LENGTH]; - char fru_id[AMDSMI_NORMAL_STRING_LENGTH]; - char product_name[AMDSMI_256_LENGTH]; + char model_number[AMDSMI_MAX_STRING_LENGTH]; + char product_serial[AMDSMI_MAX_STRING_LENGTH]; + char fru_id[AMDSMI_MAX_STRING_LENGTH]; + char product_name[AMDSMI_MAX_STRING_LENGTH]; char manufacturer_name[AMDSMI_MAX_STRING_LENGTH]; - uint32_t reserved[32]; + uint64_t reserved[32]; } amdsmi_board_info_t; typedef struct { @@ -759,7 +759,7 @@ typedef uint32_t amdsmi_process_handle_t; typedef struct { - char name[AMDSMI_NORMAL_STRING_LENGTH]; + char name[AMDSMI_MAX_STRING_LENGTH]; amdsmi_process_handle_t pid; uint64_t mem; /** in bytes */ struct engine_usage_ { @@ -773,8 +773,8 @@ typedef struct { uint64_t vram_mem; uint32_t reserved[10]; } memory_usage; /** in bytes */ - char container_name[AMDSMI_NORMAL_STRING_LENGTH]; - uint32_t reserved[4]; + char container_name[AMDSMI_MAX_STRING_LENGTH]; + uint32_t reserved[12]; } amdsmi_proc_info_t; /** diff --git a/projects/amdsmi/py-interface/amdsmi_wrapper.py b/projects/amdsmi/py-interface/amdsmi_wrapper.py index 701b8ccfae..c65800da99 100644 --- a/projects/amdsmi/py-interface/amdsmi_wrapper.py +++ b/projects/amdsmi/py-interface/amdsmi_wrapper.py @@ -851,11 +851,11 @@ class struct_amdsmi_vbios_info_t(Structure): struct_amdsmi_vbios_info_t._pack_ = 1 # source:False struct_amdsmi_vbios_info_t._fields_ = [ - ('name', ctypes.c_char * 64), + ('name', ctypes.c_char * 256), ('build_date', ctypes.c_char * 32), - ('part_number', ctypes.c_char * 64), - ('version', ctypes.c_char * 32), - ('reserved', ctypes.c_uint32 * 16), + ('part_number', ctypes.c_char * 256), + ('version', ctypes.c_char * 256), + ('reserved', ctypes.c_uint64 * 32), ] amdsmi_vbios_info_t = struct_amdsmi_vbios_info_t @@ -929,17 +929,16 @@ struct_amdsmi_asic_info_t._pack_ = 1 # source:False struct_amdsmi_asic_info_t._fields_ = [ ('market_name', ctypes.c_char * 256), ('vendor_id', ctypes.c_uint32), - ('vendor_name', ctypes.c_char * 64), + ('vendor_name', ctypes.c_char * 256), ('subvendor_id', ctypes.c_uint32), ('device_id', ctypes.c_uint64), ('rev_id', ctypes.c_uint32), - ('asic_serial', ctypes.c_char * 32), + ('asic_serial', ctypes.c_char * 256), ('oam_id', ctypes.c_uint32), ('num_of_compute_units', ctypes.c_uint32), ('PADDING_0', ctypes.c_ubyte * 4), ('target_graphics_version', ctypes.c_uint64), - ('reserved', ctypes.c_uint32 * 15), - ('PADDING_1', ctypes.c_ubyte * 4), + ('reserved', ctypes.c_uint32 * 22), ] amdsmi_asic_info_t = struct_amdsmi_asic_info_t @@ -1054,9 +1053,9 @@ class struct_amdsmi_driver_info_t(Structure): struct_amdsmi_driver_info_t._pack_ = 1 # source:False struct_amdsmi_driver_info_t._fields_ = [ - ('driver_version', ctypes.c_char * 64), - ('driver_date', ctypes.c_char * 64), - ('driver_name', ctypes.c_char * 64), + ('driver_version', ctypes.c_char * 256), + ('driver_date', ctypes.c_char * 256), + ('driver_name', ctypes.c_char * 256), ] amdsmi_driver_info_t = struct_amdsmi_driver_info_t @@ -1066,11 +1065,11 @@ class struct_amdsmi_board_info_t(Structure): struct_amdsmi_board_info_t._pack_ = 1 # source:False struct_amdsmi_board_info_t._fields_ = [ ('model_number', ctypes.c_char * 256), - ('product_serial', ctypes.c_char * 32), - ('fru_id', ctypes.c_char * 32), + ('product_serial', ctypes.c_char * 256), + ('fru_id', ctypes.c_char * 256), ('product_name', ctypes.c_char * 256), - ('manufacturer_name', ctypes.c_char * 64), - ('reserved', ctypes.c_uint32 * 32), + ('manufacturer_name', ctypes.c_char * 256), + ('reserved', ctypes.c_uint64 * 32), ] amdsmi_board_info_t = struct_amdsmi_board_info_t @@ -1143,14 +1142,14 @@ struct_engine_usage_._fields_ = [ struct_amdsmi_proc_info_t._pack_ = 1 # source:False struct_amdsmi_proc_info_t._fields_ = [ - ('name', ctypes.c_char * 32), + ('name', ctypes.c_char * 256), ('pid', ctypes.c_uint32), ('PADDING_0', ctypes.c_ubyte * 4), ('mem', ctypes.c_uint64), ('engine_usage', struct_engine_usage_), ('memory_usage', struct_memory_usage_), - ('container_name', ctypes.c_char * 32), - ('reserved', ctypes.c_uint32 * 4), + ('container_name', ctypes.c_char * 256), + ('reserved', ctypes.c_uint32 * 12), ] amdsmi_proc_info_t = struct_amdsmi_proc_info_t