[PATCH] drm/amdgpu: skip IB tests for KIQ in general

Christian König ckoenig.leichtzumerken at gmail.com
Thu Oct 4 07:11:56 UTC 2018


Am 03.10.2018 um 17:15 schrieb Shirish S:
> From: Pratik Vishwakarma <Pratik.Vishwakarma at amd.com>
>
> [Why]
> 1. We never submit IBs to KIQ.
> 2. Ring test pass without KIQ's ring also.
> 3. By skipping we see an improvement of around 500ms
>     in the amdgpu's resume time.
>
> [How]
> skip IB tests for KIQ ring type.
>
> Signed-off-by: Shirish S <shirish.s at amd.com>
> Signed-off-by: Pratik Vishwakarma <Pratik.Vishwakarma at amd.com>

Well I'm not sure if that is a good idea or not.

On the one hand it is true that we never submit IBs to the KIQ, so 
testing that doesn't make much sense actually.

But on the other hand the 500ms delay during resume points out a problem 
with the KIQ, e.g. interrupts are not working correctly!

Question is now if we should ignore that problem because we never use 
interrupts on the KIQ?

If the answer is to keep it as it is we should remove the intterupt 
handling for the KIQ as well.

Otherwise I would say we should fix interrupts on the KIQ and then we 
also don't need this change any more.

Regards,
Christian.

> ---
>
> This patch is a follow-up to the suggestion given by Alex,
> while reviewing the patch: https://patchwork.freedesktop.org/patch/250912/
>
> -Shirish S
>
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
> index 47817e0..b8963b7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
> @@ -354,6 +354,14 @@ int amdgpu_ib_ring_tests(struct amdgpu_device *adev)
>   		if (!ring || !ring->ready)
>   			continue;
>   
> +		/* skip IB tests for KIQ in general for the below reasons:
> +		 * 1. We never submit IBs to the KIQ
> +		 * 2. KIQ doesn't use the EOP interrupts,
> +		 *    we use some other CP interrupt.
> +		 */
> +		if (ring->funcs->type == AMDGPU_RING_TYPE_KIQ)
> +			continue;
> +
>   		/* MM engine need more time */
>   		if (ring->funcs->type == AMDGPU_RING_TYPE_UVD ||
>   			ring->funcs->type == AMDGPU_RING_TYPE_VCE ||



More information about the amd-gfx mailing list