[PATCH 2/2] drm/amdgpu: add critical address check for bad page retirement

Zhang, Hawking Hawking.Zhang at amd.com
Thu Jul 24 06:24:45 UTC 2025


[AMD Official Use Only - AMD Internal Distribution Only]

Series is

Reviewed-by: Hawking Zhang <Hawking.Zhang at amd.com>

Regards,
Hawking
-----Original Message-----
From: Chai, Thomas <YiPeng.Chai at amd.com>
Sent: Wednesday, July 23, 2025 15:38
To: amd-gfx at lists.freedesktop.org
Cc: Chai, Thomas <YiPeng.Chai at amd.com>; Zhang, Hawking <Hawking.Zhang at amd.com>; Zhou1, Tao <Tao.Zhou1 at amd.com>; Yang, Stanley <Stanley.Yang at amd.com>; Chai, Thomas <YiPeng.Chai at amd.com>
Subject: [PATCH 2/2] drm/amdgpu: add critical address check for bad page retirement

Add critical address check for bad page retirement.

Signed-off-by: YiPeng Chai <YiPeng.Chai at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index 0ad3a9eedfd2..a1062b23d0b4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -2660,6 +2660,11 @@ static int amdgpu_ras_badpages_read(struct amdgpu_device *adev,
                        .size = AMDGPU_GPU_PAGE_SIZE,
                        .flags = AMDGPU_RAS_RETIRE_PAGE_RESERVED,
                };
+
+               if (amdgpu_ras_check_critical_address(adev,
+                       data->bps[i].retired_page << AMDGPU_GPU_PAGE_SHIFT))
+                       continue;
+
                status = amdgpu_vram_mgr_query_page_status(&adev->mman.vram_mgr,
                                data->bps[i].retired_page << AMDGPU_GPU_PAGE_SHIFT);
                if (status == -EBUSY)
@@ -5406,6 +5411,9 @@ int amdgpu_ras_reserve_page(struct amdgpu_device *adev, uint64_t pfn)
        uint64_t start = pfn << AMDGPU_GPU_PAGE_SHIFT;
        int ret = 0;

+       if (amdgpu_ras_check_critical_address(adev, start))
+               return 0;
+
        mutex_lock(&con->page_rsv_lock);
        ret = amdgpu_vram_mgr_query_page_status(mgr, start);
        if (ret == -ENOENT)
--
2.34.1



More information about the amd-gfx mailing list