[PATCH] drm/amdkfd: fix add queue process context clear without runtime enable

Eric Huang jinhuieric.huang at amd.com
Thu Sep 14 13:59:16 UTC 2023


On 2023-09-12 21:52, Jonathan Kim wrote:
> There are cases where HSA runtime is not enabled through the
> AMDKFD_IOC_RUNTIME_ENABLE call when adding queues and the MES ADD_QUEUE
> API should clear the MES process context instead of SET_SHADER_DEBUGGER.
> Such examples are legacy HSA runtime builds that do not support the
> current exception handling and running KFD tests.
>
> The only time ADD_QUEUE.skip_process_ctx_clear is required is for
> debugger use cases where a debugged process is always runtime enabled
> when adding a queue.
>
> Tested-by: Shikai Guo <shikai.guo at amd.com>
> Signed-off-by: Jonathan Kim <jonathan.kim at amd.com>
Reviewed-by: Eric Huang <jinhuieric.huang at amd.com>

> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
>
> 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 6d07a5dd2648..77159b03a422 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> @@ -227,8 +227,10 @@ static int add_queue_mes(struct device_queue_manager *dqm, struct queue *q,
>   	queue_input.tba_addr = qpd->tba_addr;
>   	queue_input.tma_addr = qpd->tma_addr;
>   	queue_input.trap_en = !kfd_dbg_has_cwsr_workaround(q->device);
> -	queue_input.skip_process_ctx_clear = qpd->pqm->process->debug_trap_enabled ||
> -					     kfd_dbg_has_ttmps_always_setup(q->device);
> +	queue_input.skip_process_ctx_clear =
> +		qpd->pqm->process->runtime_info.runtime_state == DEBUG_RUNTIME_STATE_ENABLED &&
> +						(qpd->pqm->process->debug_trap_enabled ||
> +						 kfd_dbg_has_ttmps_always_setup(q->device));
>   
>   	queue_type = convert_to_mes_queue_type(q->properties.type);
>   	if (queue_type < 0) {



More information about the amd-gfx mailing list