[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