Bug 64320

Summary: WebGL support in Chrome causes GPU lockup when using llvm
Product: Mesa Reporter: Marc Dietrich <marvin24>
Component: Drivers/Gallium/r600Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Marc Dietrich 2013-05-07 13:38:09 UTC
googles chrome browser causes gpu lockup on my RS880 while showing maps.google.com and enabling WebGL renderer. For this to work, you need to manually override gpu blacklist with "--enable-webgl --ignore-gpu-blacklist" on the command prompt. Check with about:gpu that hw accel is enabled.

Mesa/LLVM/drm/ddx is from today (May 7th) and kernel is 3.9.

dmesg shows:


[ 3889.414104] radeon 0000:01:05.0: GPU lockup CP stall for more than 10000msec
[ 3889.414116] radeon 0000:01:05.0: GPU lockup (waiting for 0x000000000000cba7 last fence id 0x000000000000cba6)
[ 3889.415314] radeon 0000:01:05.0: Saved 2617 dwords of commands on ring 0.
[ 3889.415325] radeon 0000:01:05.0: GPU softreset: 0x00000009
[ 3889.415330] radeon 0000:01:05.0:   R_008010_GRBM_STATUS      = 0xA2723030
[ 3889.415336] radeon 0000:01:05.0:   R_008014_GRBM_STATUS2     = 0x00000103
[ 3889.415341] radeon 0000:01:05.0:   R_000E50_SRBM_STATUS      = 0x20001040
[ 3889.415346] radeon 0000:01:05.0:   R_008674_CP_STALLED_STAT1 = 0x00000000
[ 3889.415350] radeon 0000:01:05.0:   R_008678_CP_STALLED_STAT2 = 0x00008002
[ 3889.415355] radeon 0000:01:05.0:   R_00867C_CP_BUSY_STAT     = 0x00008086
[ 3889.415360] radeon 0000:01:05.0:   R_008680_CP_STAT          = 0x80018645
[ 3889.415365] radeon 0000:01:05.0:   R_00D034_DMA_STATUS_REG   = 0x44C83D57
[ 3889.496650] radeon 0000:01:05.0: R_008020_GRBM_SOFT_RESET=0x00007FEF
[ 3889.496702] radeon 0000:01:05.0: SRBM_SOFT_RESET=0x00000100
[ 3889.511115] radeon 0000:01:05.0:   R_008010_GRBM_STATUS      = 0xA0003030
[ 3889.511117] radeon 0000:01:05.0:   R_008014_GRBM_STATUS2     = 0x00000003
[ 3889.511118] radeon 0000:01:05.0:   R_000E50_SRBM_STATUS      = 0x20009040
[ 3889.511119] radeon 0000:01:05.0:   R_008674_CP_STALLED_STAT1 = 0x00000000
[ 3889.511120] radeon 0000:01:05.0:   R_008678_CP_STALLED_STAT2 = 0x00000000
[ 3889.511122] radeon 0000:01:05.0:   R_00867C_CP_BUSY_STAT     = 0x00000000
[ 3889.511123] radeon 0000:01:05.0:   R_008680_CP_STAT          = 0x80100000
[ 3889.511124] radeon 0000:01:05.0:   R_00D034_DMA_STATUS_REG   = 0x44C83D57
[ 3889.511128] radeon 0000:01:05.0: GPU reset succeeded, trying to resume
[ 3889.525400] [drm] PCIE GART of 512M enabled (table at 0x00000000C0040000).
[ 3889.525469] radeon 0000:01:05.0: WB enabled
[ 3889.525471] radeon 0000:01:05.0: fence driver on ring 0 use gpu addr 0x00000000a0000c00 and cpu addr 0xffff8801140fec00
[ 3889.525473] radeon 0000:01:05.0: fence driver on ring 3 use gpu addr 0x00000000a0000c0c and cpu addr 0xffff8801140fec0c
[ 3889.525748] radeon 0000:01:05.0: setting latency timer to 64
[ 3889.561733] [drm] ring test on 0 succeeded in 0 usecs
[ 3889.561789] [drm] ring test on 3 succeeded in 1 usecs
[ 3889.663696] Watchdog[27005]: segfault at 0 ip 00007fa72ac7fc0e sp 00007fa71e139580 error 6 in chrome[7fa729f89000+56b2000]
[ 3900.242063] radeon 0000:01:05.0: GPU lockup CP stall for more than 10000msec
[ 3900.242076] radeon 0000:01:05.0: GPU lockup (waiting for 0x000000000000cbf8 last fence id 0x000000000000cba9)
[ 3900.242099] [drm:r600_ib_test] *ERROR* radeon: fence wait failed (-16).
[ 3900.242107] [drm:radeon_ib_ring_tests] *ERROR* radeon: failed testing IB on GFX ring (-16).
[ 3900.242113] radeon 0000:01:05.0: ib ring test failed (-16).
[ 3900.243281] radeon 0000:01:05.0: GPU softreset: 0x00000009
[ 3900.243287] radeon 0000:01:05.0:   R_008010_GRBM_STATUS      = 0xA2723030
[ 3900.243292] radeon 0000:01:05.0:   R_008014_GRBM_STATUS2     = 0x00000103
[ 3900.243296] radeon 0000:01:05.0:   R_000E50_SRBM_STATUS      = 0x20000040
[ 3900.243301] radeon 0000:01:05.0:   R_008674_CP_STALLED_STAT1 = 0x00000000
[ 3900.243306] radeon 0000:01:05.0:   R_008678_CP_STALLED_STAT2 = 0x00008002
[ 3900.243311] radeon 0000:01:05.0:   R_00867C_CP_BUSY_STAT     = 0x00008086
[ 3900.243315] radeon 0000:01:05.0:   R_008680_CP_STAT          = 0x80018645
[ 3900.243320] radeon 0000:01:05.0:   R_00D034_DMA_STATUS_REG   = 0x44C83D57
[ 3900.299679] radeon 0000:01:05.0: R_008020_GRBM_SOFT_RESET=0x00007FEF
[ 3900.299732] radeon 0000:01:05.0: SRBM_SOFT_RESET=0x00000100
[ 3900.302183] radeon 0000:01:05.0:   R_008010_GRBM_STATUS      = 0xA0003030
[ 3900.302184] radeon 0000:01:05.0:   R_008014_GRBM_STATUS2     = 0x00000003
[ 3900.302186] radeon 0000:01:05.0:   R_000E50_SRBM_STATUS      = 0x20008040
[ 3900.302187] radeon 0000:01:05.0:   R_008674_CP_STALLED_STAT1 = 0x00000000
[ 3900.302188] radeon 0000:01:05.0:   R_008678_CP_STALLED_STAT2 = 0x00000000
[ 3900.302190] radeon 0000:01:05.0:   R_00867C_CP_BUSY_STAT     = 0x00000000
[ 3900.302191] radeon 0000:01:05.0:   R_008680_CP_STAT          = 0x80100000
[ 3900.302192] radeon 0000:01:05.0:   R_00D034_DMA_STATUS_REG   = 0x44C83D57
[ 3900.302195] radeon 0000:01:05.0: GPU reset succeeded, trying to resume
[ 3900.304477] [drm] PCIE GART of 512M enabled (table at 0x00000000C0040000).
[ 3900.304572] radeon 0000:01:05.0: WB enabled
[ 3900.304575] radeon 0000:01:05.0: fence driver on ring 0 use gpu addr 0x00000000a0000c00 and cpu addr 0xffff8801140fec00
[ 3900.304576] radeon 0000:01:05.0: fence driver on ring 3 use gpu addr 0x00000000a0000c0c and cpu addr 0xffff8801140fec0c
[ 3900.304820] radeon 0000:01:05.0: setting latency timer to 64
[ 3900.341039] [drm] ring test on 0 succeeded in 1 usecs
[ 3900.341096] [drm] ring test on 3 succeeded in 1 usecs
[ 3900.341115] [drm] ib test on ring 0 succeeded in 0 usecs
[ 3900.341127] [drm] ib test on ring 3 succeeded in 1 usecs
[ 3900.344205] radeon 0000:01:05.0: GPU softreset: 0x00000040
[ 3900.344208] radeon 0000:01:05.0:   R_008010_GRBM_STATUS      = 0xA0003030
[ 3900.344210] radeon 0000:01:05.0:   R_008014_GRBM_STATUS2     = 0x00000003
[ 3900.344211] radeon 0000:01:05.0:   R_000E50_SRBM_STATUS      = 0x20009040
[ 3900.344213] radeon 0000:01:05.0:   R_008674_CP_STALLED_STAT1 = 0x00000000
[ 3900.344214] radeon 0000:01:05.0:   R_008678_CP_STALLED_STAT2 = 0x00000000
[ 3900.344215] radeon 0000:01:05.0:   R_00867C_CP_BUSY_STAT     = 0x00000000
[ 3900.344217] radeon 0000:01:05.0:   R_008680_CP_STAT          = 0x80100000
[ 3900.344218] radeon 0000:01:05.0:   R_00D034_DMA_STATUS_REG   = 0x44C83D57
[ 3900.408220] radeon 0000:01:05.0: SRBM_SOFT_RESET=0x00002000
[ 3900.422569] radeon 0000:01:05.0:   R_008010_GRBM_STATUS      = 0xA0003030
[ 3900.422571] radeon 0000:01:05.0:   R_008014_GRBM_STATUS2     = 0x00000003
[ 3900.422572] radeon 0000:01:05.0:   R_000E50_SRBM_STATUS      = 0x20001040
[ 3900.422574] radeon 0000:01:05.0:   R_008674_CP_STALLED_STAT1 = 0x00000000
[ 3900.422575] radeon 0000:01:05.0:   R_008678_CP_STALLED_STAT2 = 0x00000000
[ 3900.422577] radeon 0000:01:05.0:   R_00867C_CP_BUSY_STAT     = 0x00000000
[ 3900.422579] radeon 0000:01:05.0:   R_008680_CP_STAT          = 0x80100000
[ 3900.422580] radeon 0000:01:05.0:   R_00D034_DMA_STATUS_REG   = 0x44C83D57
[ 3900.422584] radeon 0000:01:05.0: GPU reset succeeded, trying to resume
[ 3900.437060] [drm] PCIE GART of 512M enabled (table at 0x00000000C0040000).
[ 3900.437245] radeon 0000:01:05.0: WB enabled
[ 3900.437247] radeon 0000:01:05.0: fence driver on ring 0 use gpu addr 0x00000000a0000c00 and cpu addr 0xffff8801140fec00
[ 3900.437249] radeon 0000:01:05.0: fence driver on ring 3 use gpu addr 0x00000000a0000c0c and cpu addr 0xffff8801140fec0c
[ 3900.437632] radeon 0000:01:05.0: setting latency timer to 64
[ 3900.473423] [drm] ring test on 0 succeeded in 1 usecs
[ 3900.473480] [drm] ring test on 3 succeeded in 1 usecs
[ 3900.473494] [drm] ib test on ring 0 succeeded in 0 usecs
[ 3900.473505] [drm] ib test on ring 3 succeeded in 1 usecs
Comment 1 Alex Deucher 2013-05-07 14:17:16 UTC
Is this a regression?  If so, can you bisect?  Please attach your xorg log and dmesg output.
Comment 2 Alex Deucher 2013-05-07 14:25:31 UTC
It was noted on IRC that the lockups only happen with llvm.  This is probably a duplicate of bug 64257.
Comment 3 Marc Dietrich 2013-05-07 14:59:14 UTC
I don't see Kwin corruptions as reported in bug 64257. Also this bug says nothing about GPU lockups. But what I also see is a "dark glxgears" effect.

It's kinda hard to bisect this because r600 now depends on llvm and different mesa versions may require different llvm versions. I can try using the llvm version as written in LLVM_REVISION.TXT, but that may take some time.
Comment 4 Marc Dietrich 2013-05-14 15:04:28 UTC
maybe related to bug 64193.
Comment 5 Marc Dietrich 2013-05-14 17:11:55 UTC
Fixes with patch proposed on bug 64193

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.