答复: [PATCH] drm/amdgpu: replace BUG_ON() and BUG()

Qu, Jim Jim.Qu at amd.com
Thu Jul 14 04:53:11 UTC 2016


Are there any comments for patch?


Thanks

JimQu

________________________________
发件人: Qu, Jim
发送时间: 2016年7月12日 17:44:51
收件人: Christian König; Dave Airlie
抄送: amd-gfx mailing list
主题: 答复: [PATCH] drm/amdgpu: replace BUG_ON() and BUG()


Hi Christian:


Yes, my patch is for this issue in the vce fence interrupt. and I am also working on an S3 issue on Polaris10. I found that system may be blocked after ring ib test for the VCE ring.


Could you share any points about the S3 issue?


Thanks

JimQu

________________________________
发件人: Christian König <deathsimple at vodafone.de>
发送时间: 2016年7月12日 17:15:56
收件人: Dave Airlie; Qu, Jim
抄送: amd-gfx mailing list
主题: Re: [PATCH] drm/amdgpu: replace BUG_ON() and BUG()

Am 12.07.2016 um 05:35 schrieb Dave Airlie:
> On 12 July 2016 at 10:16, jimqu <Jim.Qu at amd.com> wrote:
>> Sometimes, it maybe a ring test failure during S3 resume. When that
>> happens, it will be kernel panic in the fence interrupt and  will
>> hangs up system. it is difficult to get any information from kernel
>> for debug.
> Please just use WARN or WARN_ON.

And I already completely changed the code to neither BUG() nor WARN()
because of this.

VCE just sends spurious fence values during resume and I'm still working
on a way to fully sort them out.

Christian.

>
> Dave.
>
>> Change-Id: Iafa6c3793be151b8b85cf4299b929ba333b6174e
>> Signed-off-by: JimQu <Jim.Qu at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu.h       | 15 +++++++++++++++
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c |  4 ++--
>>   2 files changed, 17 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>> index c3bf33f..15b6c5d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>> @@ -2242,6 +2242,21 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
>>   }
>>
>>   /*
>> + * Debug helpers
>> + */
>> +#define AMDGPU_BUG() do { \
>> +               printk(KERN_ERR "BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
>> +               dump_stack(); \
>> +               for (;;); \
>> +       } while (0)
>> +
>> +#define AMDGPU_BUG_ON(condition) do { \
>> +               if (unlikely((condition)!= 0)) { \
>> +                       AMDGPU_BUG(); \
>> +               } \
>> +       } while (0)
>> +
>> +/*
>>    * ASICs macro.
>>    */
>>   #define amdgpu_asic_set_vga_state(adev, state) (adev)->asic_funcs->set_vga_state((adev), (state))
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
>> index d155876..b8e5fa7 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
>> @@ -213,13 +213,13 @@ void amdgpu_fence_process(struct amdgpu_ring *ring)
>>                  fence = rcu_dereference_protected(*ptr, 1);
>>                  RCU_INIT_POINTER(*ptr, NULL);
>>
>> -               BUG_ON(!fence);
>> +               AMDGPU_BUG_ON(!fence);
>>
>>                  r = fence_signal(fence);
>>                  if (!r)
>>                          FENCE_TRACE(fence, "signaled from irq context\n");
>>                  else
>> -                       BUG();
>> +                       AMDGPU_BUG();
>>
>>                  fence_put(fence);
>>          }
>> --
>> 1.9.1
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20160714/a48cf484/attachment-0001.html>


More information about the amd-gfx mailing list