Commit dbf3850d authored by Yang Wang's avatar Yang Wang Committed by Alex Deucher

drm/amdgpu: optimize the printing order of error data

sort error data list to optimize the printing order.
Signed-off-by: default avatarYang Wang <kevinyang.wang@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 0e8af205
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <linux/reboot.h> #include <linux/reboot.h>
#include <linux/syscalls.h> #include <linux/syscalls.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <linux/list_sort.h>
#include "amdgpu.h" #include "amdgpu.h"
#include "amdgpu_ras.h" #include "amdgpu_ras.h"
...@@ -3665,6 +3666,21 @@ static struct ras_err_node *amdgpu_ras_error_node_new(void) ...@@ -3665,6 +3666,21 @@ static struct ras_err_node *amdgpu_ras_error_node_new(void)
return err_node; return err_node;
} }
static int ras_err_info_cmp(void *priv, const struct list_head *a, const struct list_head *b)
{
struct ras_err_node *nodea = container_of(a, struct ras_err_node, node);
struct ras_err_node *nodeb = container_of(b, struct ras_err_node, node);
struct amdgpu_smuio_mcm_config_info *infoa = &nodea->err_info.mcm_info;
struct amdgpu_smuio_mcm_config_info *infob = &nodeb->err_info.mcm_info;
if (unlikely(infoa->socket_id != infob->socket_id))
return infoa->socket_id - infob->socket_id;
else
return infoa->die_id - infob->die_id;
return 0;
}
static struct ras_err_info *amdgpu_ras_error_get_info(struct ras_err_data *err_data, static struct ras_err_info *amdgpu_ras_error_get_info(struct ras_err_data *err_data,
struct amdgpu_smuio_mcm_config_info *mcm_info) struct amdgpu_smuio_mcm_config_info *mcm_info)
{ {
...@@ -3682,6 +3698,7 @@ static struct ras_err_info *amdgpu_ras_error_get_info(struct ras_err_data *err_d ...@@ -3682,6 +3698,7 @@ static struct ras_err_info *amdgpu_ras_error_get_info(struct ras_err_data *err_d
err_data->err_list_count++; err_data->err_list_count++;
list_add_tail(&err_node->node, &err_data->err_node_list); list_add_tail(&err_node->node, &err_data->err_node_list);
list_sort(NULL, &err_data->err_node_list, ras_err_info_cmp);
return &err_node->err_info; return &err_node->err_info;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment