SWDEV-455131 - Updated process APIs
- Removed amdsmi_get_gpu_process_info from python API - Updated documentation - Aligned process --json output format to unit & value format Signed-off-by: Maisam Arif <maisarif@amd.com> Change-Id: I82bba1b6df71020b4a5995ff63b9aa62611ce4fe
Αυτή η υποβολή περιλαμβάνεται σε:
@@ -2576,28 +2576,38 @@ class AMDSMICommands():
|
||||
raise e
|
||||
|
||||
filtered_process_values = []
|
||||
for process in process_list:
|
||||
try:
|
||||
process_info = amdsmi_interface.amdsmi_get_gpu_process_info(args.gpu, process)
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
process_info = "N/A"
|
||||
logging.debug("Failed to get process info for process %s on gpu %s | %s", process, gpu_id, e.get_error_info())
|
||||
filtered_process_values.append({'process_info': process_info})
|
||||
continue
|
||||
|
||||
for process_info in process_list:
|
||||
process_info['mem_usage'] = process_info.pop('mem')
|
||||
process_info['usage'] = process_info.pop('engine_usage')
|
||||
|
||||
engine_usage_unit = "ns"
|
||||
memory_usage_unit = "B"
|
||||
|
||||
if self.logger.is_human_readable_format():
|
||||
process_info['mem_usage'] = self.helpers.convert_bytes_to_readable(process_info['mem_usage'])
|
||||
|
||||
engine_usage_unit = "ns"
|
||||
for usage_metric in process_info['usage']:
|
||||
process_info['usage'][usage_metric] = f"{process_info['usage'][usage_metric]} {engine_usage_unit}"
|
||||
|
||||
for usage_metric in process_info['memory_usage']:
|
||||
process_info['memory_usage'][usage_metric] = self.helpers.convert_bytes_to_readable(process_info['memory_usage'][usage_metric])
|
||||
elif self.logger.is_json_format():
|
||||
process_info['mem_usage'] = {"value" : process_info['mem_usage'],
|
||||
"unit" : memory_usage_unit}
|
||||
|
||||
for usage_metric in process_info['usage']:
|
||||
process_info['usage'][usage_metric] = {"value" : process_info['usage'][usage_metric],
|
||||
"unit" : engine_usage_unit}
|
||||
|
||||
for usage_metric in process_info['memory_usage']:
|
||||
process_info['memory_usage'][usage_metric] = {"value" : process_info['memory_usage'][usage_metric],
|
||||
"unit" : memory_usage_unit}
|
||||
|
||||
filtered_process_values.append({'process_info': process_info})
|
||||
|
||||
if not filtered_process_values:
|
||||
process_info = "N/A"
|
||||
logging.debug("Failed to detect any process on gpu %s", gpu_id)
|
||||
filtered_process_values.append({'process_info': process_info})
|
||||
|
||||
# Arguments will filter the populated processes
|
||||
@@ -2641,7 +2651,7 @@ class AMDSMICommands():
|
||||
# Convert and store output by pid for csv format
|
||||
if self.logger.is_csv_format():
|
||||
# Check for empty list first
|
||||
if filtered_process_values == []:
|
||||
if not filtered_process_values:
|
||||
self.logger.store_output(args.gpu, 'process_info', 'No running processes detected')
|
||||
else:
|
||||
for process_info in filtered_process_values:
|
||||
@@ -2660,7 +2670,7 @@ class AMDSMICommands():
|
||||
self.logger.store_output(args.gpu, 'timestamp', int(time.time()))
|
||||
|
||||
# Store values in logger.output
|
||||
if filtered_process_values == []:
|
||||
if not filtered_process_values:
|
||||
self.logger.store_output(args.gpu, 'process_info', 'No running processes detected')
|
||||
else:
|
||||
for process_info in filtered_process_values:
|
||||
|
||||
Αναφορά σε νέο ζήτημα
Block a user