[PATCH] drm/amdkfd: Remove GWS from process during uninit

Kuehling, Felix Felix.Kuehling at amd.com
Wed Jul 17 15:14:49 UTC 2019


On 2019-07-17 10:58, Greathouse, Joseph wrote:
> If we shut down a process without having destroyed its GWS-using
> queues, it is possible that GWS BO will still be in the process
> BO list during the gpuvm destruction. This list should be empty
> at that time, so we should remove the GWS allocation at the
> process uninit point if it is still around.
>
> Change-Id: I098e7b315070dd5b0165bb7905aef643450f27f2
> Signed-off-by: Joseph Greathouse <Joseph.Greathouse at amd.com>

Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>


> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> index da0958625861..7e6c3ee82f5b 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> @@ -150,6 +150,9 @@ void pqm_uninit(struct process_queue_manager *pqm)
>   	struct process_queue_node *pqn, *next;
>   
>   	list_for_each_entry_safe(pqn, next, &pqm->queues, process_queue_list) {
> +		if (pqn->q && pqn->q->gws)
> +			amdgpu_amdkfd_remove_gws_from_process(pqm->process->kgd_process_info,
> +				pqn->q->gws);
>   		uninit_queue(pqn->q);
>   		list_del(&pqn->process_queue_list);
>   		kfree(pqn);


More information about the amd-gfx mailing list