[PATCH 3/4] drm/amdgpu: drop the busy wait for GMC v9 TLB invalidations

Deng, Emily Emily.Deng at amd.com
Thu Oct 25 09:40:02 UTC 2018


Add Wentao.

Best wishes
Emily Deng



>-----Original Message-----
>From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of
>Christian König
>Sent: Thursday, October 25, 2018 5:15 PM
>To: amd-gfx at lists.freedesktop.org
>Subject: [PATCH 3/4] drm/amdgpu: drop the busy wait for GMC v9 TLB
>invalidations
>
>This code is not performance critical.
>
>Signed-off-by: Christian König <christian.koenig at amd.com>
>---
> drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 26 ++++----------------------
> 1 file changed, 4 insertions(+), 22 deletions(-)
>
>diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>index 7dee74f1937c..ff5e5f69b403 100644
>--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>@@ -350,35 +350,17 @@ static void gmc_v9_0_flush_gpu_tlb(struct
>amdgpu_device *adev,
> 		}
>
> 		spin_lock(&adev->gmc.invalidate_lock);
>-
> 		WREG32_NO_KIQ(hub->vm_inv_eng0_req + eng, tmp);
>-
>-		/* Busy wait for ACK.*/
>-		for (j = 0; j < 100; j++) {
>-			tmp = RREG32_NO_KIQ(hub->vm_inv_eng0_ack +
>eng);
>-			tmp &= 1 << vmid;
>-			if (tmp)
>-				break;
>-			cpu_relax();
>-		}
>-		if (j < 100) {
>-			spin_unlock(&adev->gmc.invalidate_lock);
>-			continue;
>-		}
>-
>-		/* Wait for ACK with a delay.*/
> 		for (j = 0; j < adev->usec_timeout; j++) {
> 			tmp = RREG32_NO_KIQ(hub->vm_inv_eng0_ack +
>eng);
>-			tmp &= 1 << vmid;
>-			if (tmp)
>+			if (tmp & (1 << vmid))
> 				break;
> 			udelay(1);
> 		}
>-		if (j < adev->usec_timeout) {
>-			spin_unlock(&adev->gmc.invalidate_lock);
>-			continue;
>-		}
> 		spin_unlock(&adev->gmc.invalidate_lock);
>+		if (j < adev->usec_timeout)
>+			continue;
>+
> 		DRM_ERROR("Timeout waiting for VM flush ACK!\n");
> 	}
> }
>--
>2.14.1
>
>_______________________________________________
>amd-gfx mailing list
>amd-gfx at lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list