drm/amdgpu: disable page reservation when amdgpu_bad_page_threshold = 0
When amdgpu_bad_page_threshold = 0, bad page reservation stuffs are skipped in either UMC ECC irq or page retirement calling of sync flood isr. Signed-off-by: Guchun Chen <guchun.chen@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
f848159b57
commit
a219ecbb83
@@ -1676,7 +1676,7 @@ static int amdgpu_ras_load_bad_pages(struct amdgpu_device *adev)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
/* no bad page record, skip eeprom access */
|
/* no bad page record, skip eeprom access */
|
||||||
if (!control->num_recs)
|
if (!control->num_recs || (amdgpu_bad_page_threshold == 0))
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
bps = kcalloc(control->num_recs, sizeof(*bps), GFP_KERNEL);
|
bps = kcalloc(control->num_recs, sizeof(*bps), GFP_KERNEL);
|
||||||
@@ -1780,7 +1780,8 @@ int amdgpu_ras_reserve_bad_pages(struct amdgpu_device *adev)
|
|||||||
struct amdgpu_bo *bo = NULL;
|
struct amdgpu_bo *bo = NULL;
|
||||||
int i, ret = 0;
|
int i, ret = 0;
|
||||||
|
|
||||||
if (!con || !con->eh_data)
|
/* Not reserve bad page when amdgpu_bad_page_threshold == 0. */
|
||||||
|
if (!con || !con->eh_data || (amdgpu_bad_page_threshold == 0))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
mutex_lock(&con->recovery_lock);
|
mutex_lock(&con->recovery_lock);
|
||||||
|
|||||||
@@ -125,7 +125,8 @@ int amdgpu_umc_process_ras_data_cb(struct amdgpu_device *adev,
|
|||||||
"detected in UMC block\n",
|
"detected in UMC block\n",
|
||||||
err_data->ue_count);
|
err_data->ue_count);
|
||||||
|
|
||||||
if (err_data->err_addr_cnt &&
|
if ((amdgpu_bad_page_threshold != 0) &&
|
||||||
|
err_data->err_addr_cnt &&
|
||||||
amdgpu_ras_add_bad_pages(adev, err_data->err_addr,
|
amdgpu_ras_add_bad_pages(adev, err_data->err_addr,
|
||||||
err_data->err_addr_cnt))
|
err_data->err_addr_cnt))
|
||||||
dev_warn(adev->dev, "Failed to add ras bad page!\n");
|
dev_warn(adev->dev, "Failed to add ras bad page!\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user