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/20160712/8a959a8d/attachment-0001.html>