[PATCH 1/3] drm/amdgpu: implicitly sync the dependent read fences

Yadav, Arvind arvyadav at amd.com
Fri Apr 25 07:21:05 UTC 2025


This is problem for TLB flush. We should not do this changes. Here we 
are utilizing DMA_RESV_USAGE_BOOKKEEP due to the TLB flush fence 
associated with the page table (PT). We are ensuring that no page 
directory (PD) or page table (PT) should be free before flush and ttm bo 
release and delete both are also waiting for BOOKKEEP fence. Please drop 
this changes for eviction fence.

Regards,
~arvind

On 4/25/2025 12:37 PM, Prike Liang wrote:
> The driver doesn't want to sync on the DMA_RESV_USAGE_BOOKKEEP
> usage fences, so here only return and sync the dependent read
> fences.
>
> Signed-off-by: Prike Liang <Prike.Liang at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 5 ++---
>   1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
> index 5576ed0b508f..4e1d30ecb6cc 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
> @@ -249,9 +249,8 @@ int amdgpu_sync_resv(struct amdgpu_device *adev, struct amdgpu_sync *sync,
>   
>   	if (resv == NULL)
>   		return -EINVAL;
> -
> -	/* TODO: Use DMA_RESV_USAGE_READ here */
> -	dma_resv_for_each_fence(&cursor, resv, DMA_RESV_USAGE_BOOKKEEP, f) {
> +	/*Only return and sync the fences of usage <= DMA_RESV_USAGE_READ.*/
> +	dma_resv_for_each_fence(&cursor, resv, DMA_RESV_USAGE_READ, f) {
>   		dma_fence_chain_for_each(f, f) {
>   			struct dma_fence *tmp = dma_fence_chain_contained(f);
>   


More information about the amd-gfx mailing list