[PATCH v2 1/3] drm/amdgpu: Dirty cleared blocks on free

Arunpravin Paneer Selvam arunpravin.paneerselvam at amd.com
Wed Jul 2 11:58:01 UTC 2025


Hi Christian,

On 7/2/2025 1:27 PM, Christian König wrote:
>
> On 01.07.25 21:08, Arunpravin Paneer Selvam wrote:
>> Set the dirty bit when the memory resource is not cleared
>> during BO release.
>>
>> v2(Christian):
>>    - Drop the cleared flag set to false.
>>    - Improve the amdgpu_vram_mgr_set_clear_state() function.
>>
>> Signed-off-by: Arunpravin Paneer Selvam<Arunpravin.PaneerSelvam at amd.com>
>> Suggested-by: Christian König<christian.koenig at amd.com>
>> Cc:stable at vger.kernel.org
>> Fixes: a68c7eaa7a8f ("drm/amdgpu: Enable clear page functionality")
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c      | 1 -
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h | 5 ++++-
>>   2 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>> index 9c5df35f05b7..86eb6d47dcc5 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>> @@ -409,7 +409,6 @@ static int amdgpu_move_blit(struct ttm_buffer_object *bo,
>>   		if (r) {
>>   			goto error;
>>   		} else if (wipe_fence) {
>> -			amdgpu_vram_mgr_set_cleared(bo->resource);
> Mhm, that looks incorrect to me.
>
> Why don't we consider the resource cleared after it go wiped during eviction?

Modifying the resource flag here doesn't go into effect until we call 
the drm_buddy_free_list() in amdgpu_vram_mgr_del(). This BO will be 
cleared once again after executing amdgpu_bo_release_notify(). With the 
new implementation, there's a chance that changing the resource flag the 
second time would cause the WARN_ON to occur. Hence I removed the 
resource cleared function call in amdgpu_move_blit. Thanks, Arun.

>
> Regards,
> Christian.
>
>>   			dma_fence_put(fence);
>>   			fence = wipe_fence;
>>   		}
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h
>> index b256cbc2bc27..2c88d5fd87da 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h
>> @@ -66,7 +66,10 @@ to_amdgpu_vram_mgr_resource(struct ttm_resource *res)
>>   
>>   static inline void amdgpu_vram_mgr_set_cleared(struct ttm_resource *res)
>>   {
>> -	to_amdgpu_vram_mgr_resource(res)->flags |= DRM_BUDDY_CLEARED;
>> +	struct amdgpu_vram_mgr_resource *ares = to_amdgpu_vram_mgr_resource(res);
>> +
>> +	WARN_ON(ares->flags & DRM_BUDDY_CLEARED);
>> +	ares->flags |= DRM_BUDDY_CLEARED;
>>   }
>>   
>>   #endif
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20250702/02af0f74/attachment-0001.htm>


More information about the dri-devel mailing list