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

Christian König deathsimple at vodafone.de
Tue Jul 12 09:15:56 UTC 2016


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



More information about the amd-gfx mailing list