[PATCH] Remove calls to DAL suspend/resume from amdgpu_device_gpu_recover.

Christian König ckoenig.leichtzumerken at gmail.com
Fri May 18 09:54:19 UTC 2018


Am 17.05.2018 um 20:41 schrieb Harry Wentland:
> On 2018-05-17 11:50 AM, Andrey Grodzovsky wrote:
>> First of all it's already being called from the display code from amd_ip_funcs.suspend/resume hooks.
>> Second of all, the place in amdgpu_device_gpu_recover it's being called is wrong for GPU stalls since
>> it is called BEFORE we cancel and force completion of all jobs which were not yet processed.
>> So, as Bas pointed in the ticket we will try to wait for fence  in amdgpu_pm_compute_clocks but the pipe
>> is hanged so we end up in deadlock.
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106500
>> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
> Reviewed-by: Harry Wentland <harry.wentland at amd.com>

Reviewed-by: Christian König <christian.koenig at amd.com>

>
> Harry
>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 +--------
>>   1 file changed, 1 insertion(+), 8 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> index fcd4bb2..f5c0a2d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> @@ -3200,10 +3200,6 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
>>   	/* block TTM */
>>   	resched = ttm_bo_lock_delayed_workqueue(&adev->mman.bdev);
>>   
>> -	/* store modesetting */
>> -	if (amdgpu_device_has_dc_support(adev))
>> -		state = drm_atomic_helper_suspend(adev->ddev);
>> -
>>   	/* block all schedulers and reset given job's ring */
>>   	for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
>>   		struct amdgpu_ring *ring = adev->rings[i];
>> @@ -3243,10 +3239,7 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
>>   		kthread_unpark(ring->sched.thread);
>>   	}
>>   
>> -	if (amdgpu_device_has_dc_support(adev)) {
>> -		if (drm_atomic_helper_resume(adev->ddev, state))
>> -			dev_info(adev->dev, "drm resume failed:%d\n", r);
>> -	} else {
>> +	if (!amdgpu_device_has_dc_support(adev)) {
>>   		drm_helper_resume_force_mode(adev->ddev);
>>   	}
>>   
>>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx



More information about the amd-gfx mailing list