Commit 3fd20580 authored by Harish Kasiviswanathan's avatar Harish Kasiviswanathan Committed by Alex Deucher
Browse files

drm/amdkfd: No need to suspend whole MES to evict process

Each queue of the process is individually removed and there is not need
to suspend whole mes. Suspending mes stops kernel mode queues also
causing unnecessary timeouts when running mixed work loads

Fixes: 079ae511 ("drm/amdkfd: fix suspend/resume all calls in mes based eviction path")
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4765


Signed-off-by: default avatarHarish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e921a5f7
Loading
Loading
Loading
Loading
+1 −11
Original line number Diff line number Diff line
@@ -1211,14 +1211,8 @@ static int evict_process_queues_cpsch(struct device_queue_manager *dqm,
	pr_debug_ratelimited("Evicting process pid %d queues\n",
			    pdd->process->lead_thread->pid);

	if (dqm->dev->kfd->shared_resources.enable_mes) {
	if (dqm->dev->kfd->shared_resources.enable_mes)
		pdd->last_evict_timestamp = get_jiffies_64();
		retval = suspend_all_queues_mes(dqm);
		if (retval) {
			dev_err(dev, "Suspending all queues failed");
			goto out;
		}
	}

	/* Mark all queues as evicted. Deactivate all active queues on
	 * the qpd.
@@ -1248,10 +1242,6 @@ static int evict_process_queues_cpsch(struct device_queue_manager *dqm,
					      KFD_UNMAP_QUEUES_FILTER_ALL_QUEUES :
					      KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES, 0,
					      USE_DEFAULT_GRACE_PERIOD);
	} else {
		retval = resume_all_queues_mes(dqm);
		if (retval)
			dev_err(dev, "Resuming all queues failed");
	}

out: