It is to fix a bug of gpu_recovery on multiple GPUs, When one gpu is reset, the application running on other gpu hangs, because kfd post reset doesn't restore the running process. And it also fixes a bug in the function kfd_process_evict_queues, when one gpu hangs, process running on other gpus can't be evicted. Signed-off-by: Eric Huang <jinhuieric.huang@xxxxxxx> --- drivers/gpu/drm/amd/amdkfd/kfd_device.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 24 +----------------------- 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c index 24b5e0aa1eac..daf1c19bd799 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c @@ -984,7 +984,7 @@ int kgd2kfd_post_reset(struct kfd_dev *kfd) if (!kfd->init_complete) return 0; - ret = kfd_resume(kfd); + ret = kgd2kfd_resume(kfd, false, true); if (ret) return ret; atomic_dec(&kfd_locked); diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c index 38a9dee40785..9272a12c1db8 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c @@ -1879,36 +1879,14 @@ int kfd_process_evict_queues(struct kfd_process *p) { int r = 0; int i; - unsigned int n_evicted = 0; for (i = 0; i < p->n_pdds; i++) { struct kfd_process_device *pdd = p->pdds[i]; r = pdd->dev->dqm->ops.evict_process_queues(pdd->dev->dqm, &pdd->qpd); - if (r) { + if (r) pr_err("Failed to evict process queues\n"); - goto fail; - } - n_evicted++; - } - - return r; - -fail: - /* To keep state consistent, roll back partial eviction by - * restoring queues - */ - for (i = 0; i < p->n_pdds; i++) { - struct kfd_process_device *pdd = p->pdds[i]; - - if (n_evicted == 0) - break; - if (pdd->dev->dqm->ops.restore_process_queues(pdd->dev->dqm, - &pdd->qpd)) - pr_err("Failed to restore queues\n"); - - n_evicted--; } return r; -- 2.25.1 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx