Lines Matching refs:err_data
168 struct ras_err_data err_data; in amdgpu_reserve_page_direct() local
187 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_reserve_page_direct()
192 err_data.err_addr = &err_rec; in amdgpu_reserve_page_direct()
193 amdgpu_umc_fill_error_record(&err_data, address, address, 0, 0); in amdgpu_reserve_page_direct()
196 amdgpu_ras_add_bad_pages(adev, err_data.err_addr, in amdgpu_reserve_page_direct()
197 err_data.err_addr_cnt, false); in amdgpu_reserve_page_direct()
201 amdgpu_ras_error_data_fini(&err_data); in amdgpu_reserve_page_direct()
660 amdgpu_ras_error_data_fini(&obj->err_data); in put_obj()
692 if (amdgpu_ras_error_data_init(&obj->err_data)) in amdgpu_ras_create_obj()
1019 static void amdgpu_ras_get_ecc_info(struct amdgpu_device *adev, struct ras_err_data *err_data) in amdgpu_ras_get_ecc_info() argument
1032 adev->umc.ras->ras_block.hw_ops->query_ras_error_count(adev, err_data); in amdgpu_ras_get_ecc_info()
1039 adev->umc.ras->ras_block.hw_ops->query_ras_error_address(adev, err_data); in amdgpu_ras_get_ecc_info()
1043 adev->umc.ras->ecc_info_query_ras_error_count(adev, err_data); in amdgpu_ras_get_ecc_info()
1047 adev->umc.ras->ecc_info_query_ras_error_address(adev, err_data); in amdgpu_ras_get_ecc_info()
1053 struct ras_err_data *err_data, in amdgpu_ras_error_print_error_data() argument
1065 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_print_error_data()
1078 for_each_ras_error(err_node, &ras_mgr->err_data) { in amdgpu_ras_error_print_error_data()
1088 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_print_error_data()
1101 for_each_ras_error(err_node, &ras_mgr->err_data) { in amdgpu_ras_error_print_error_data()
1110 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_print_error_data()
1123 for_each_ras_error(err_node, &ras_mgr->err_data) { in amdgpu_ras_error_print_error_data()
1142 struct ras_err_data *err_data, in amdgpu_ras_error_generate_report() argument
1149 if (err_data->ce_count) { in amdgpu_ras_error_generate_report()
1150 if (err_data_has_source_info(err_data)) { in amdgpu_ras_error_generate_report()
1151 amdgpu_ras_error_print_error_data(adev, ras_mgr, err_data, qctx, in amdgpu_ras_error_generate_report()
1162 ras_mgr->err_data.ce_count, in amdgpu_ras_error_generate_report()
1167 ras_mgr->err_data.ce_count, in amdgpu_ras_error_generate_report()
1172 if (err_data->ue_count) { in amdgpu_ras_error_generate_report()
1173 if (err_data_has_source_info(err_data)) { in amdgpu_ras_error_generate_report()
1174 amdgpu_ras_error_print_error_data(adev, ras_mgr, err_data, qctx, in amdgpu_ras_error_generate_report()
1185 ras_mgr->err_data.ue_count, in amdgpu_ras_error_generate_report()
1190 ras_mgr->err_data.ue_count, in amdgpu_ras_error_generate_report()
1195 if (err_data->de_count) { in amdgpu_ras_error_generate_report()
1196 if (err_data_has_source_info(err_data)) { in amdgpu_ras_error_generate_report()
1197 amdgpu_ras_error_print_error_data(adev, ras_mgr, err_data, qctx, in amdgpu_ras_error_generate_report()
1208 ras_mgr->err_data.de_count, in amdgpu_ras_error_generate_report()
1213 ras_mgr->err_data.de_count, in amdgpu_ras_error_generate_report()
1221 struct ras_err_data *err_data, in amdgpu_ras_virt_error_generate_report() argument
1229 new_ce = err_data->ce_count - obj->err_data.ce_count; in amdgpu_ras_virt_error_generate_report()
1230 new_ue = err_data->ue_count - obj->err_data.ue_count; in amdgpu_ras_virt_error_generate_report()
1231 new_de = err_data->de_count - obj->err_data.de_count; in amdgpu_ras_virt_error_generate_report()
1255 …d amdgpu_rasmgr_error_data_statistic_update(struct ras_manager *obj, struct ras_err_data *err_data) in amdgpu_rasmgr_error_data_statistic_update() argument
1260 if (err_data_has_source_info(err_data)) { in amdgpu_rasmgr_error_data_statistic_update()
1261 for_each_ras_error(err_node, err_data) { in amdgpu_rasmgr_error_data_statistic_update()
1263 amdgpu_ras_error_statistic_de_count(&obj->err_data, in amdgpu_rasmgr_error_data_statistic_update()
1265 amdgpu_ras_error_statistic_ce_count(&obj->err_data, in amdgpu_rasmgr_error_data_statistic_update()
1267 amdgpu_ras_error_statistic_ue_count(&obj->err_data, in amdgpu_rasmgr_error_data_statistic_update()
1272 obj->err_data.ue_count += err_data->ue_count; in amdgpu_rasmgr_error_data_statistic_update()
1273 obj->err_data.ce_count += err_data->ce_count; in amdgpu_rasmgr_error_data_statistic_update()
1274 obj->err_data.de_count += err_data->de_count; in amdgpu_rasmgr_error_data_statistic_update()
1279 struct ras_err_data *err_data) in amdgpu_ras_mgr_virt_error_data_statistics_update() argument
1282 obj->err_data.ue_count = err_data->ue_count; in amdgpu_ras_mgr_virt_error_data_statistics_update()
1283 obj->err_data.ce_count = err_data->ce_count; in amdgpu_ras_mgr_virt_error_data_statistics_update()
1284 obj->err_data.de_count = err_data->de_count; in amdgpu_ras_mgr_virt_error_data_statistics_update()
1327 enum aca_error_type type, struct ras_err_data *err_data, in amdgpu_aca_log_ras_error_data() argument
1336 return amdgpu_aca_get_error_data(adev, &obj->aca_handle, type, err_data, qctx); in amdgpu_aca_log_ras_error_data()
1359 struct ras_err_data *err_data, in amdgpu_ras_query_error_status_helper() argument
1374 return amdgpu_virt_req_ras_err_count(adev, blk, err_data); in amdgpu_ras_query_error_status_helper()
1377 amdgpu_ras_get_ecc_info(adev, err_data); in amdgpu_ras_query_error_status_helper()
1387 block_obj->hw_ops->query_ras_error_count(adev, err_data); in amdgpu_ras_query_error_status_helper()
1398 ret = amdgpu_aca_log_ras_error_data(adev, blk, ACA_ERROR_TYPE_UE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1402 ret = amdgpu_aca_log_ras_error_data(adev, blk, ACA_ERROR_TYPE_CE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1406 ret = amdgpu_aca_log_ras_error_data(adev, blk, ACA_ERROR_TYPE_DEFERRED, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1411 amdgpu_mca_smu_log_ras_error(adev, blk, AMDGPU_MCA_ERROR_TYPE_UE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1412 amdgpu_mca_smu_log_ras_error(adev, blk, AMDGPU_MCA_ERROR_TYPE_CE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1425 struct ras_err_data err_data; in amdgpu_ras_query_error_status_with_event() local
1433 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_ras_query_error_status_with_event()
1450 &err_data, in amdgpu_ras_query_error_status_with_event()
1458 amdgpu_rasmgr_error_data_statistic_update(obj, &err_data); in amdgpu_ras_query_error_status_with_event()
1459 amdgpu_ras_error_generate_report(adev, info, &err_data, &qctx); in amdgpu_ras_query_error_status_with_event()
1465 amdgpu_ras_virt_error_generate_report(adev, info, &err_data, &qctx); in amdgpu_ras_query_error_status_with_event()
1466 amdgpu_ras_mgr_virt_error_data_statistics_update(obj, &err_data); in amdgpu_ras_query_error_status_with_event()
1469 info->ue_count = obj->err_data.ue_count; in amdgpu_ras_query_error_status_with_event()
1470 info->ce_count = obj->err_data.ce_count; in amdgpu_ras_query_error_status_with_event()
1471 info->de_count = obj->err_data.de_count; in amdgpu_ras_query_error_status_with_event()
1474 amdgpu_ras_error_data_fini(&err_data); in amdgpu_ras_query_error_status_with_event()
2268 struct ras_err_data err_data; in amdgpu_ras_interrupt_umc_handler() local
2274 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_ras_interrupt_umc_handler()
2282 ret = data->cb(obj->adev, &err_data, entry); in amdgpu_ras_interrupt_umc_handler()
2292 obj->err_data.ue_count += err_data.ue_count; in amdgpu_ras_interrupt_umc_handler()
2293 obj->err_data.ce_count += err_data.ce_count; in amdgpu_ras_interrupt_umc_handler()
2294 obj->err_data.de_count += err_data.de_count; in amdgpu_ras_interrupt_umc_handler()
2297 amdgpu_ras_error_data_fini(&err_data); in amdgpu_ras_interrupt_umc_handler()
2738 struct ras_err_data *err_data) in amdgpu_ras_mca2pa_by_idx() argument
2748 err_data->err_addr_cnt = 0; in amdgpu_ras_mca2pa_by_idx()
2749 err_data->err_addr_len = adev->umc.retire_unit; in amdgpu_ras_mca2pa_by_idx()
2759 ret = adev->umc.ras->convert_ras_err_addr(adev, err_data, in amdgpu_ras_mca2pa_by_idx()
2767 struct ras_err_data *err_data) in amdgpu_ras_mca2pa() argument
2785 err_data->err_addr_cnt = 0; in amdgpu_ras_mca2pa()
2786 err_data->err_addr_len = adev->umc.retire_unit; in amdgpu_ras_mca2pa()
2796 return adev->umc.ras->convert_ras_err_addr(adev, err_data, in amdgpu_ras_mca2pa()
2831 struct eeprom_table_record *bps, struct ras_err_data *err_data, in __amdgpu_ras_convert_rec_array_from_rom() argument
2841 memcpy(err_data->err_addr, bps, in __amdgpu_ras_convert_rec_array_from_rom()
2851 if (amdgpu_umc_pages_in_a_row(adev, err_data, in __amdgpu_ras_convert_rec_array_from_rom()
2855 if (amdgpu_ras_mca2pa_by_idx(adev, &bps[0], err_data)) in __amdgpu_ras_convert_rec_array_from_rom()
2859 if (amdgpu_ras_mca2pa(adev, &bps[0], err_data)) { in __amdgpu_ras_convert_rec_array_from_rom()
2861 memcpy(err_data->err_addr, bps, in __amdgpu_ras_convert_rec_array_from_rom()
2869 return __amdgpu_ras_restore_bad_pages(adev, err_data->err_addr, adev->umc.retire_unit); in __amdgpu_ras_convert_rec_array_from_rom()
2873 struct eeprom_table_record *bps, struct ras_err_data *err_data, in __amdgpu_ras_convert_rec_from_rom() argument
2882 if (amdgpu_umc_pages_in_a_row(adev, err_data, in __amdgpu_ras_convert_rec_from_rom()
2886 if (amdgpu_ras_mca2pa_by_idx(adev, bps, err_data)) in __amdgpu_ras_convert_rec_from_rom()
2889 return __amdgpu_ras_restore_bad_pages(adev, err_data->err_addr, in __amdgpu_ras_convert_rec_from_rom()
2898 struct ras_err_data err_data; in amdgpu_ras_add_bad_pages() local
2909 err_data.err_addr = in amdgpu_ras_add_bad_pages()
2912 if (!err_data.err_addr) { in amdgpu_ras_add_bad_pages()
2930 &bps[i], &err_data, nps); in amdgpu_ras_add_bad_pages()
2943 &bps[i], &err_data, nps); in amdgpu_ras_add_bad_pages()
2953 kfree(err_data.err_addr); in amdgpu_ras_add_bad_pages()
3228 struct ras_err_data err_data; in amdgpu_ras_do_page_retirement() local
3238 amdgpu_ras_error_data_init(&err_data); in amdgpu_ras_do_page_retirement()
3240 amdgpu_umc_handle_bad_pages(adev, &err_data); in amdgpu_ras_do_page_retirement()
3241 err_cnt = err_data.err_addr_cnt; in amdgpu_ras_do_page_retirement()
3243 amdgpu_ras_error_data_fini(&err_data); in amdgpu_ras_do_page_retirement()
4935 int amdgpu_ras_error_data_init(struct ras_err_data *err_data) in amdgpu_ras_error_data_init() argument
4937 memset(err_data, 0, sizeof(*err_data)); in amdgpu_ras_error_data_init()
4939 INIT_LIST_HEAD(&err_data->err_node_list); in amdgpu_ras_error_data_init()
4953 void amdgpu_ras_error_data_fini(struct ras_err_data *err_data) in amdgpu_ras_error_data_fini() argument
4957 list_for_each_entry_safe(err_node, tmp, &err_data->err_node_list, node) in amdgpu_ras_error_data_fini()
4961 static struct ras_err_node *amdgpu_ras_error_find_node_by_id(struct ras_err_data *err_data, in amdgpu_ras_error_find_node_by_id() argument
4967 if (!err_data || !mcm_info) in amdgpu_ras_error_find_node_by_id()
4970 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_find_node_by_id()
5009 static struct ras_err_info *amdgpu_ras_error_get_info(struct ras_err_data *err_data, in amdgpu_ras_error_get_info() argument
5014 err_node = amdgpu_ras_error_find_node_by_id(err_data, mcm_info); in amdgpu_ras_error_get_info()
5024 err_data->err_list_count++; in amdgpu_ras_error_get_info()
5025 list_add_tail(&err_node->node, &err_data->err_node_list); in amdgpu_ras_error_get_info()
5026 list_sort(NULL, &err_data->err_node_list, ras_err_info_cmp); in amdgpu_ras_error_get_info()
5031 int amdgpu_ras_error_statistic_ue_count(struct ras_err_data *err_data, in amdgpu_ras_error_statistic_ue_count() argument
5037 if (!err_data || !mcm_info) in amdgpu_ras_error_statistic_ue_count()
5043 err_info = amdgpu_ras_error_get_info(err_data, mcm_info); in amdgpu_ras_error_statistic_ue_count()
5048 err_data->ue_count += count; in amdgpu_ras_error_statistic_ue_count()
5053 int amdgpu_ras_error_statistic_ce_count(struct ras_err_data *err_data, in amdgpu_ras_error_statistic_ce_count() argument
5059 if (!err_data || !mcm_info) in amdgpu_ras_error_statistic_ce_count()
5065 err_info = amdgpu_ras_error_get_info(err_data, mcm_info); in amdgpu_ras_error_statistic_ce_count()
5070 err_data->ce_count += count; in amdgpu_ras_error_statistic_ce_count()
5075 int amdgpu_ras_error_statistic_de_count(struct ras_err_data *err_data, in amdgpu_ras_error_statistic_de_count() argument
5081 if (!err_data || !mcm_info) in amdgpu_ras_error_statistic_de_count()
5087 err_info = amdgpu_ras_error_get_info(err_data, mcm_info); in amdgpu_ras_error_statistic_de_count()
5092 err_data->de_count += count; in amdgpu_ras_error_statistic_de_count()