diff options
| author | YiPeng Chai <[email protected]> | 2024-07-11 08:14:22 +0000 |
|---|---|---|
| committer | Alex Deucher <[email protected]> | 2024-07-23 21:32:14 +0000 |
| commit | 56631dee2932dbc203f0abd1011aa9d3d621e206 (patch) | |
| tree | ab94d0073118a06a66545705e6e63b3f093ae3b4 /drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c | |
| parent | drm/amdgpu: optimize umc v12 address conversion function (diff) | |
| download | kernel-56631dee2932dbc203f0abd1011aa9d3d621e206.tar.gz kernel-56631dee2932dbc203f0abd1011aa9d3d621e206.zip | |
drm/amdgpu: optimize logging deferred error info
1. Use pa_pfn as the radix-tree key index to log
deferred error info.
2. Use local array to store a row of bad pages.
Signed-off-by: YiPeng Chai <[email protected]>
Reviewed-by: Hawking Zhang <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c index 2f84bdb8c594..096e867a6a6d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c @@ -519,18 +519,10 @@ int amdgpu_umc_logs_ecc_err(struct amdgpu_device *adev, ecc_log = &con->umc_ecc_log; mutex_lock(&ecc_log->lock); - ret = radix_tree_insert(ecc_tree, ecc_err->hash_index, ecc_err); - if (!ret) { - struct ras_err_pages *err_pages = &ecc_err->err_pages; - int i; - - /* Reserve memory */ - for (i = 0; i < err_pages->count; i++) - amdgpu_ras_reserve_page(adev, err_pages->pfn[i]); - + ret = radix_tree_insert(ecc_tree, ecc_err->pa_pfn, ecc_err); + if (!ret) radix_tree_tag_set(ecc_tree, - ecc_err->hash_index, UMC_ECC_NEW_DETECTED_TAG); - } + ecc_err->pa_pfn, UMC_ECC_NEW_DETECTED_TAG); mutex_unlock(&ecc_log->lock); return ret; |
