[PATCH 3/7] drm/amdgpu: resources will freed in job_free

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2016å¹´06æ??29æ?¥ 17:30, Christian König wrote:
> Am 29.06.2016 um 11:12 schrieb zhoucm1:
>>
>>
>> On 2016å¹´06æ??29æ?¥ 16:54, Christian König wrote:
>>> Am 29.06.2016 um 10:09 schrieb Chunming Zhou:
>>>> We will re-submit jobs to recovery hw ring after gpu reset.
>>>>
>>>> Change-Id: I0f99bd14673ce0e0dbb7b3b6c2b050245824b9ca
>>>> Signed-off-by: Chunming Zhou <David1.Zhou at amd.com>
>>>
>>> NAK, this can lead to a deadlock in the SA because it isn't informed 
>>> any more about the fence protecting the IBs.
>>
>> I didn't get your means, IBs is using, just delay to free, where does 
>> deadlock come from?
>
> We use the IB test after the GPU reset to test if the reset was 
> successfully. This allocates some space for each IB using the SA.
>
> If the resources in the SA aren't freed it will wait for that to 
> happen and so wait for the hung task to continue.

Why does IB test to allocate SA bo needs to wait for other IB SA bo? 
Seems have nothing to do with it.

>
>>
>>>
>>> Should also not be necessary if you just want to resubmit the IBs.
>>
>> How to do that if needing to resubmit?
>
> Just resubmit that job, that should work fine.
I will try it.

Thanks,
David Zhou
>
> Christian.
>
>>
>> Thanks,
>> David Zhou
>>>
>>> Christian.
>>>
>>>> ---
>>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 3 +--
>>>>   1 file changed, 1 insertion(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c 
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
>>>> index b50a845..83771c1 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
>>>> @@ -98,7 +98,7 @@ static void amdgpu_job_free_resources(struct 
>>>> amdgpu_job *job)
>>>>   void amdgpu_job_free_cb(struct amd_sched_job *s_job)
>>>>   {
>>>>       struct amdgpu_job *job = container_of(s_job, struct 
>>>> amdgpu_job, base);
>>>> -
>>>> +    amdgpu_job_free_resources(job);
>>>>       kfree(job);
>>>>   }
>>>>   @@ -178,7 +178,6 @@ static struct fence *amdgpu_job_run(struct 
>>>> amd_sched_job *sched_job)
>>>>     err:
>>>>       job->fence = fence;
>>>> -    amdgpu_job_free_resources(job);
>>>>       return fence;
>>>>   }
>>>
>>> _______________________________________________
>>> amd-gfx mailing list
>>> amd-gfx at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>>
>



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux