• Dennis Li's avatar
    drm/amdgpu: fix the issue of reserving bad pages failed · 676deb38
    Dennis Li authored
    In amdgpu_ras_reset_gpu, because bad pages may not be freed,
    it has high probability to reserve bad pages failed.
    
    Change to reserve bad pages when freeing VRAM.
    
    v2:
    1. avoid allocating the drm_mm node outside of amdgpu_vram_mgr.c
    2. move bad page reserving into amdgpu_ras_add_bad_pages, if vram mgr
       reserve bad page failed, it will put it into pending list, otherwise
       put it into processed list;
    3. remove amdgpu_ras_release_bad_pages, because retired page's info has
       been moved into amdgpu_vram_mgr
    
    v3:
    1. formate code style;
    2. rename amdgpu_vram_reserve_scope as amdgpu_vram_reservation;
    3. rename scope_pending as reservations_pending;
    4. rename scope_processed as reserved_pages;
    5. change to iterate over all the pending ones and try to insert them
       with drm_mm_reserve_node();
    
    v4:
    1. rename amdgpu_vram_mgr_reserve_scope as
    amdgpu_vram_mgr_reserve_range;
    2. remove unused include "amdgpu_ras.h";
    3. rename amdgpu_vram_mgr_check_and_reserve as
    amdgpu_vram_mgr_do_reserve;
    4. refine amdgpu_vram_mgr_reserve_range to call
    amdgpu_vram_mgr_do_reserve.
    Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
    Reviewed-by: default avatarHawking Zhang <hawking.zhang@amd.com>
    Signed-off-by: default avatarDennis Li <Dennis.Li@amd.com>
    Signed-off-by: default avatarWenhui Sheng <Wenhui.Sheng@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    676deb38
amdgpu_ras.h 19.1 KB