Lines Matching refs:err_data
178 struct ras_err_data err_data; in amdgpu_reserve_page_direct() local
195 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_reserve_page_direct()
200 err_data.err_addr = &err_rec; in amdgpu_reserve_page_direct()
201 amdgpu_umc_fill_error_record(&err_data, address, address, 0, 0); in amdgpu_reserve_page_direct()
204 amdgpu_ras_add_bad_pages(adev, err_data.err_addr, in amdgpu_reserve_page_direct()
205 err_data.err_addr_cnt, false); in amdgpu_reserve_page_direct()
209 amdgpu_ras_error_data_fini(&err_data); in amdgpu_reserve_page_direct()
733 amdgpu_ras_error_data_fini(&obj->err_data); in put_obj()
765 if (amdgpu_ras_error_data_init(&obj->err_data)) in amdgpu_ras_create_obj()
1092 static void amdgpu_ras_get_ecc_info(struct amdgpu_device *adev, struct ras_err_data *err_data) in amdgpu_ras_get_ecc_info() argument
1105 adev->umc.ras->ras_block.hw_ops->query_ras_error_count(adev, err_data); in amdgpu_ras_get_ecc_info()
1112 adev->umc.ras->ras_block.hw_ops->query_ras_error_address(adev, err_data); in amdgpu_ras_get_ecc_info()
1116 adev->umc.ras->ecc_info_query_ras_error_count(adev, err_data); in amdgpu_ras_get_ecc_info()
1120 adev->umc.ras->ecc_info_query_ras_error_address(adev, err_data); in amdgpu_ras_get_ecc_info()
1126 struct ras_err_data *err_data, in amdgpu_ras_error_print_error_data() argument
1138 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_print_error_data()
1151 for_each_ras_error(err_node, &ras_mgr->err_data) { in amdgpu_ras_error_print_error_data()
1161 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_print_error_data()
1174 for_each_ras_error(err_node, &ras_mgr->err_data) { in amdgpu_ras_error_print_error_data()
1186 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_print_error_data()
1199 for_each_ras_error(err_node, &ras_mgr->err_data) { in amdgpu_ras_error_print_error_data()
1218 struct ras_err_data *err_data, in amdgpu_ras_error_generate_report() argument
1225 if (err_data->ce_count) { in amdgpu_ras_error_generate_report()
1226 if (err_data_has_source_info(err_data)) { in amdgpu_ras_error_generate_report()
1227 amdgpu_ras_error_print_error_data(adev, ras_mgr, err_data, qctx, in amdgpu_ras_error_generate_report()
1238 ras_mgr->err_data.ce_count, in amdgpu_ras_error_generate_report()
1243 ras_mgr->err_data.ce_count, in amdgpu_ras_error_generate_report()
1248 if (err_data->ue_count) { in amdgpu_ras_error_generate_report()
1249 if (err_data_has_source_info(err_data)) { in amdgpu_ras_error_generate_report()
1250 amdgpu_ras_error_print_error_data(adev, ras_mgr, err_data, qctx, in amdgpu_ras_error_generate_report()
1261 ras_mgr->err_data.ue_count, in amdgpu_ras_error_generate_report()
1266 ras_mgr->err_data.ue_count, in amdgpu_ras_error_generate_report()
1271 if (err_data->de_count) { in amdgpu_ras_error_generate_report()
1272 if (err_data_has_source_info(err_data)) { in amdgpu_ras_error_generate_report()
1273 amdgpu_ras_error_print_error_data(adev, ras_mgr, err_data, qctx, in amdgpu_ras_error_generate_report()
1284 ras_mgr->err_data.de_count, in amdgpu_ras_error_generate_report()
1289 ras_mgr->err_data.de_count, in amdgpu_ras_error_generate_report()
1297 struct ras_err_data *err_data, in amdgpu_ras_virt_error_generate_report() argument
1305 new_ce = err_data->ce_count - obj->err_data.ce_count; in amdgpu_ras_virt_error_generate_report()
1306 new_ue = err_data->ue_count - obj->err_data.ue_count; in amdgpu_ras_virt_error_generate_report()
1307 new_de = err_data->de_count - obj->err_data.de_count; in amdgpu_ras_virt_error_generate_report()
1331 …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
1336 if (err_data_has_source_info(err_data)) { in amdgpu_rasmgr_error_data_statistic_update()
1337 for_each_ras_error(err_node, err_data) { in amdgpu_rasmgr_error_data_statistic_update()
1339 amdgpu_ras_error_statistic_de_count(&obj->err_data, in amdgpu_rasmgr_error_data_statistic_update()
1341 amdgpu_ras_error_statistic_ce_count(&obj->err_data, in amdgpu_rasmgr_error_data_statistic_update()
1343 amdgpu_ras_error_statistic_ue_count(&obj->err_data, in amdgpu_rasmgr_error_data_statistic_update()
1348 obj->err_data.ue_count += err_data->ue_count; in amdgpu_rasmgr_error_data_statistic_update()
1349 obj->err_data.ce_count += err_data->ce_count; in amdgpu_rasmgr_error_data_statistic_update()
1350 obj->err_data.de_count += err_data->de_count; in amdgpu_rasmgr_error_data_statistic_update()
1355 struct ras_err_data *err_data) in amdgpu_ras_mgr_virt_error_data_statistics_update() argument
1358 obj->err_data.ue_count = err_data->ue_count; in amdgpu_ras_mgr_virt_error_data_statistics_update()
1359 obj->err_data.ce_count = err_data->ce_count; in amdgpu_ras_mgr_virt_error_data_statistics_update()
1360 obj->err_data.de_count = err_data->de_count; in amdgpu_ras_mgr_virt_error_data_statistics_update()
1403 enum aca_error_type type, struct ras_err_data *err_data, in amdgpu_aca_log_ras_error_data() argument
1412 return amdgpu_aca_get_error_data(adev, &obj->aca_handle, type, err_data, qctx); in amdgpu_aca_log_ras_error_data()
1435 struct ras_err_data *err_data, in amdgpu_ras_query_error_status_helper() argument
1450 return amdgpu_virt_req_ras_err_count(adev, blk, err_data); in amdgpu_ras_query_error_status_helper()
1453 amdgpu_ras_get_ecc_info(adev, err_data); in amdgpu_ras_query_error_status_helper()
1463 block_obj->hw_ops->query_ras_error_count(adev, err_data); in amdgpu_ras_query_error_status_helper()
1474 ret = amdgpu_aca_log_ras_error_data(adev, blk, ACA_ERROR_TYPE_UE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1478 ret = amdgpu_aca_log_ras_error_data(adev, blk, ACA_ERROR_TYPE_CE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1482 ret = amdgpu_aca_log_ras_error_data(adev, blk, ACA_ERROR_TYPE_DEFERRED, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1487 amdgpu_mca_smu_log_ras_error(adev, blk, AMDGPU_MCA_ERROR_TYPE_UE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1488 amdgpu_mca_smu_log_ras_error(adev, blk, AMDGPU_MCA_ERROR_TYPE_CE, err_data, qctx); in amdgpu_ras_query_error_status_helper()
1501 struct ras_err_data err_data; in amdgpu_ras_query_error_status_with_event() local
1509 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_ras_query_error_status_with_event()
1526 &err_data, in amdgpu_ras_query_error_status_with_event()
1534 amdgpu_rasmgr_error_data_statistic_update(obj, &err_data); in amdgpu_ras_query_error_status_with_event()
1535 amdgpu_ras_error_generate_report(adev, info, &err_data, &qctx); in amdgpu_ras_query_error_status_with_event()
1541 amdgpu_ras_virt_error_generate_report(adev, info, &err_data, &qctx); in amdgpu_ras_query_error_status_with_event()
1542 amdgpu_ras_mgr_virt_error_data_statistics_update(obj, &err_data); in amdgpu_ras_query_error_status_with_event()
1545 info->ue_count = obj->err_data.ue_count; in amdgpu_ras_query_error_status_with_event()
1546 info->ce_count = obj->err_data.ce_count; in amdgpu_ras_query_error_status_with_event()
1547 info->de_count = obj->err_data.de_count; in amdgpu_ras_query_error_status_with_event()
1550 amdgpu_ras_error_data_fini(&err_data); in amdgpu_ras_query_error_status_with_event()
2481 struct ras_err_data err_data; in amdgpu_ras_interrupt_umc_handler() local
2487 ret = amdgpu_ras_error_data_init(&err_data); in amdgpu_ras_interrupt_umc_handler()
2495 ret = data->cb(obj->adev, &err_data, entry); in amdgpu_ras_interrupt_umc_handler()
2505 obj->err_data.ue_count += err_data.ue_count; in amdgpu_ras_interrupt_umc_handler()
2506 obj->err_data.ce_count += err_data.ce_count; in amdgpu_ras_interrupt_umc_handler()
2507 obj->err_data.de_count += err_data.de_count; in amdgpu_ras_interrupt_umc_handler()
2510 amdgpu_ras_error_data_fini(&err_data); in amdgpu_ras_interrupt_umc_handler()
3002 struct ras_err_data *err_data) in amdgpu_ras_mca2pa_by_idx() argument
3012 err_data->err_addr_cnt = 0; in amdgpu_ras_mca2pa_by_idx()
3013 err_data->err_addr_len = adev->umc.retire_unit; in amdgpu_ras_mca2pa_by_idx()
3028 ret = adev->umc.ras->convert_ras_err_addr(adev, err_data, in amdgpu_ras_mca2pa_by_idx()
3036 struct ras_err_data *err_data) in amdgpu_ras_mca2pa() argument
3054 err_data->err_addr_cnt = 0; in amdgpu_ras_mca2pa()
3055 err_data->err_addr_len = adev->umc.retire_unit; in amdgpu_ras_mca2pa()
3065 return adev->umc.ras->convert_ras_err_addr(adev, err_data, in amdgpu_ras_mca2pa()
3104 struct eeprom_table_record *bps, struct ras_err_data *err_data, in __amdgpu_ras_convert_rec_array_from_rom() argument
3114 memcpy(err_data->err_addr, bps, in __amdgpu_ras_convert_rec_array_from_rom()
3124 if (amdgpu_umc_pages_in_a_row(adev, err_data, in __amdgpu_ras_convert_rec_array_from_rom()
3128 err_data->err_addr[i].address = bps[0].address; in __amdgpu_ras_convert_rec_array_from_rom()
3129 err_data->err_addr[i].mem_channel = bps[0].mem_channel; in __amdgpu_ras_convert_rec_array_from_rom()
3130 err_data->err_addr[i].bank = bps[0].bank; in __amdgpu_ras_convert_rec_array_from_rom()
3131 err_data->err_addr[i].err_type = bps[0].err_type; in __amdgpu_ras_convert_rec_array_from_rom()
3132 err_data->err_addr[i].mcumc_id = bps[0].mcumc_id; in __amdgpu_ras_convert_rec_array_from_rom()
3135 if (amdgpu_ras_mca2pa_by_idx(adev, &bps[0], err_data)) in __amdgpu_ras_convert_rec_array_from_rom()
3148 if (amdgpu_ras_mca2pa(adev, &bps[0], err_data)) { in __amdgpu_ras_convert_rec_array_from_rom()
3150 memcpy(err_data->err_addr, bps, in __amdgpu_ras_convert_rec_array_from_rom()
3158 return __amdgpu_ras_restore_bad_pages(adev, err_data->err_addr, adev->umc.retire_unit); in __amdgpu_ras_convert_rec_array_from_rom()
3162 struct eeprom_table_record *bps, struct ras_err_data *err_data, in __amdgpu_ras_convert_rec_from_rom() argument
3180 if (amdgpu_umc_pages_in_a_row(adev, err_data, in __amdgpu_ras_convert_rec_from_rom()
3184 err_data->err_addr[i].address = bps->address; in __amdgpu_ras_convert_rec_from_rom()
3185 err_data->err_addr[i].mem_channel = bps->mem_channel; in __amdgpu_ras_convert_rec_from_rom()
3186 err_data->err_addr[i].bank = bps->bank; in __amdgpu_ras_convert_rec_from_rom()
3187 err_data->err_addr[i].err_type = bps->err_type; in __amdgpu_ras_convert_rec_from_rom()
3188 err_data->err_addr[i].mcumc_id = bps->mcumc_id; in __amdgpu_ras_convert_rec_from_rom()
3192 if (amdgpu_ras_mca2pa_by_idx(adev, bps, err_data)) in __amdgpu_ras_convert_rec_from_rom()
3202 if (amdgpu_ras_mca2pa(adev, bps, err_data)) in __amdgpu_ras_convert_rec_from_rom()
3207 return __amdgpu_ras_restore_bad_pages(adev, err_data->err_addr, in __amdgpu_ras_convert_rec_from_rom()
3216 struct ras_err_data err_data; in amdgpu_ras_add_bad_pages() local
3227 err_data.err_addr = in amdgpu_ras_add_bad_pages()
3230 if (!err_data.err_addr) { in amdgpu_ras_add_bad_pages()
3251 &bps[i], &err_data, nps); in amdgpu_ras_add_bad_pages()
3265 &bps[i], &err_data, nps); in amdgpu_ras_add_bad_pages()
3276 kfree(err_data.err_addr); in amdgpu_ras_add_bad_pages()
3580 struct ras_err_data err_data; in amdgpu_ras_do_page_retirement() local
3589 amdgpu_ras_error_data_init(&err_data); in amdgpu_ras_do_page_retirement()
3591 amdgpu_umc_handle_bad_pages(adev, &err_data); in amdgpu_ras_do_page_retirement()
3593 amdgpu_ras_error_data_fini(&err_data); in amdgpu_ras_do_page_retirement()
5331 int amdgpu_ras_error_data_init(struct ras_err_data *err_data) in amdgpu_ras_error_data_init() argument
5333 memset(err_data, 0, sizeof(*err_data)); in amdgpu_ras_error_data_init()
5335 INIT_LIST_HEAD(&err_data->err_node_list); in amdgpu_ras_error_data_init()
5349 void amdgpu_ras_error_data_fini(struct ras_err_data *err_data) in amdgpu_ras_error_data_fini() argument
5353 list_for_each_entry_safe(err_node, tmp, &err_data->err_node_list, node) in amdgpu_ras_error_data_fini()
5357 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
5363 if (!err_data || !mcm_info) in amdgpu_ras_error_find_node_by_id()
5366 for_each_ras_error(err_node, err_data) { in amdgpu_ras_error_find_node_by_id()
5405 static struct ras_err_info *amdgpu_ras_error_get_info(struct ras_err_data *err_data, in amdgpu_ras_error_get_info() argument
5410 err_node = amdgpu_ras_error_find_node_by_id(err_data, mcm_info); in amdgpu_ras_error_get_info()
5420 err_data->err_list_count++; in amdgpu_ras_error_get_info()
5421 list_add_tail(&err_node->node, &err_data->err_node_list); in amdgpu_ras_error_get_info()
5422 list_sort(NULL, &err_data->err_node_list, ras_err_info_cmp); in amdgpu_ras_error_get_info()
5427 int amdgpu_ras_error_statistic_ue_count(struct ras_err_data *err_data, in amdgpu_ras_error_statistic_ue_count() argument
5433 if (!err_data || !mcm_info) in amdgpu_ras_error_statistic_ue_count()
5439 err_info = amdgpu_ras_error_get_info(err_data, mcm_info); in amdgpu_ras_error_statistic_ue_count()
5444 err_data->ue_count += count; in amdgpu_ras_error_statistic_ue_count()
5449 int amdgpu_ras_error_statistic_ce_count(struct ras_err_data *err_data, in amdgpu_ras_error_statistic_ce_count() argument
5455 if (!err_data || !mcm_info) in amdgpu_ras_error_statistic_ce_count()
5461 err_info = amdgpu_ras_error_get_info(err_data, mcm_info); in amdgpu_ras_error_statistic_ce_count()
5466 err_data->ce_count += count; in amdgpu_ras_error_statistic_ce_count()
5471 int amdgpu_ras_error_statistic_de_count(struct ras_err_data *err_data, in amdgpu_ras_error_statistic_de_count() argument
5477 if (!err_data || !mcm_info) in amdgpu_ras_error_statistic_de_count()
5483 err_info = amdgpu_ras_error_get_info(err_data, mcm_info); in amdgpu_ras_error_statistic_de_count()
5488 err_data->de_count += count; in amdgpu_ras_error_statistic_de_count()