[PATCH 03/23] drm/amdkfd: Workaround MEC mmhub flush issue

Felix Kuehling felix.kuehling at amd.com
Thu Mar 30 19:50:57 UTC 2023


I think this workaround was reverted later after a firmware fix.

Regards,
   Felix


Am 2023-03-30 um 15:42 schrieb Alex Deucher:
> From: Philip Yang <Philip.Yang at amd.com>
>
> MEC FW should flush TLB and cache when unmapping user queues, this
> is not working correctly in master FW via HIQ, it affects SDMA queues
> which use mmhub on AID, cause several KFDTest failure.
>
> Workaround this in KFD for now. Will revert this patch to verify FW fix
> later.
>
> Signed-off-by: Philip Yang <Philip.Yang at amd.com>
> Tested-by: David Francis <David.Francis at amd.com>
> Reviewed-by: Felix Kuehling <felix.kuehling at amd.com>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 9 +++++++++
>   1 file changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> index ab91a0e211c8..1d53cbc55253 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> @@ -1038,6 +1038,15 @@ static int evict_process_queues_cpsch(struct device_queue_manager *dqm,
>   					      KFD_UNMAP_QUEUES_FILTER_ALL_QUEUES :
>   					      KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES, 0);
>   
> +	/* Workaround MEC mmhub flush issue
> +	 * explicit heavyweight TLB flush after all unmap_queues calls
> +	 *
> +	 * It would not help if the firmware is unmapping queues itself when the
> +	 * runlist is oversubscribed.
> +	 */
> +	atomic64_set(&pdd->tlb_seq, 0);
> +	kfd_flush_tlb(pdd, TLB_FLUSH_HEAVYWEIGHT);
> +
>   out:
>   	dqm_unlock(dqm);
>   	return retval;


More information about the amd-gfx mailing list