System Environment: -------------------------- Libdrm: (master)2.4.22-14-g877b2ce15b80975b4dac42657bdfb0a3da833e1c Mesa: (master)9b4b70e7e28e5371ca5fddd6f8c7e09d8efd5ce0 Xserver: (master)xorg-server-1.9.0-299-g38c46ccf796462d068d95acb9022de2acfc3a1f7 Xf86_video_intel: (master)2.13.901-3-gcc930a37612341a1f2457adb339523c215879d82 Cairo: (master)31e116f084d0ff073bed9d0e9c1c6ca1e5db4843 Libva: (master)7d6bbcfc7709864184a9c56bfbbe4144c4d6c0c2 Kernel: (drm-intel-fixes)85345517fe6d4de27b0d6ca19fef9d28ac947c4a Bug detailed description: ------------------------- System hang while run the case piglit/shaders_glsl-fs-convolution-2. Sometimes, the backtrace is as following when the system hang. [mi] EQ overflowing. The server is probably stuck in an infinite loop. Backtrace: 0: /opt/X11R7/bin/X (xorg_backtrace+0x3b) [0x8099fbb] 1: /opt/X11R7/bin/X (mieqEnqueue+0x1ab) [0x8098e2b] 2: /opt/X11R7/bin/X (xf86PostMotionEventM+0xa7) [0x80ab847] 3: /opt/X11R7/bin/X (xf86PostMotionEventP+0x58) [0x80ab988] 4: /opt/X11R7/lib/xorg/modules/input/evdev_drv.so (0xb71b1000+0x32bd) [0xb71b42bd] 5: /opt/X11R7/lib/xorg/modules/input/evdev_drv.so (0xb71b1000+0x3558) [0xb71b4558] 6: /opt/X11R7/bin/X (0x8048000+0x7959f) [0x80c159f] 7: /opt/X11R7/bin/X (0x8048000+0x117e74) [0x815fe74] 8: (vdso) (__kernel_sigreturn+0x0) [0xb772a400] 9: /opt/X11R7/lib/libdrm_intel.so.1 (0xb7590000+0x6139) [0xb7596139] 10: /opt/X11R7/lib/libdrm_intel.so.1 (drm_intel_bo_subdata+0x1d) [0xb7591511] 11: /opt/X11R7/lib/xorg/modules/drivers/intel_drv.so (0xb759b000+0x7e92) [0xb75a2e92] 12: /opt/X11R7/bin/X (0x8048000+0x1335bd) [0x817b5bd] 13: /opt/X11R7/bin/X (0x8048000+0x178021) [0x81c0021] 14: /opt/X11R7/bin/X (0x8048000+0x135f2c) [0x817df2c] 15: /opt/X11R7/bin/X (miPointerUpdateSprite+0x2b3) [0x80983a3] 16: /opt/X11R7/bin/X (0x8048000+0x505cd) [0x80985cd] 17: /opt/X11R7/bin/X (0x8048000+0xa88f8) [0x80f08f8] 18: /opt/X11R7/bin/X (0x8048000+0xc4ada) [0x810cada] 19: /opt/X11R7/bin/X (0x8048000+0x3af8d) [0x8082f8d] 20: /opt/X11R7/bin/X (0x8048000+0x3cbb8) [0x8084bb8] 21: /opt/X11R7/bin/X (0x8048000+0xd9e82) [0x8121e82] 22: /opt/X11R7/bin/X (0x8048000+0x101d60) [0x8149d60] 23: /opt/X11R7/bin/X (mieqProcessDeviceEvent+0x1b4) [0x8098a14] 24: /opt/X11R7/bin/X (mieqProcessInputEvents+0x6c) [0x8098a9c] 25: /opt/X11R7/bin/X (ProcessInputEvents+0x17) [0x80c1817] 26: /opt/X11R7/bin/X (0x8048000+0x2660e) [0x806e60e] 27: /opt/X11R7/bin/X (0x8048000+0x1a17a) [0x806217a] 28: /lib/libc.so.6 (__libc_start_main+0xe6) [0x8e2cc6] 29: /opt/X11R7/bin/X (0x8048000+0x19d51) [0x8061d51]
The case piglit/shaders_glsl-fs-if-nested-loop also causes the system hang.
This is regression. Yi will try bisect.
Created attachment 40332 [details] [review] Recursive locking is bad. pread -> hang on drm-intel-fixes, could be this bug.
This isn't really a regression. This test (and many others) used to assertion fail because of missing IFs support, and loops are not supported. They are disabled in i965-gen6.tests which is the known-to-hang test set in piglit. commit da35388044db4aa6fc66c08a087d8d703b5a6008 Author: Eric Anholt <eric@anholt.net> Date: Wed Nov 17 14:59:08 2010 +0800 i965: Fail on loops on gen6 for now until we write the EU emit code for it.
The case still causes system hang. The back-trace is: Backtrace: 0: X (xorg_backtrace+0x3b) [0x809a70b] 1: X (mieqEnqueue+0x1ab) [0x809957b] 2: X (xf86PostMotionEventP+0xd2) [0x80ac502] 3: /opt/X11R7/lib/xorg/modules/input/evdev_drv.so (0xb7382000+0x338d) [0xb738538 d] 4: /opt/X11R7/lib/xorg/modules/input/evdev_drv.so (0xb7382000+0x3628) [0xb738562 8] 5: X (0x8048000+0x79d7f) [0x80c1d7f] 6: X (0x8048000+0x118d04) [0x8160d04] 7: (vdso) (__kernel_sigreturn+0x0) [0xb78fe400] 8: /opt/X11R7/lib/libdrm_intel.so.1 (0xb7762000+0x6181) [0xb7768181] 9: /opt/X11R7/lib/libdrm_intel.so.1 (drm_intel_bo_subdata+0x1d) [0xb7763511] 10: /opt/X11R7/lib/xorg/modules/drivers/intel_drv.so (0xb776d000+0x81f2) [0xb777 51f2] 11: X (0x8048000+0x1343cd) [0x817c3cd] 12: X (0x8048000+0x179861) [0x81c1861] 13: X (0x8048000+0x136d3c) [0x817ed3c] 14: X (miPointerUpdateSprite+0x2b3) [0x8098af3] 15: X (0x8048000+0x50d1d) [0x8098d1d] 16: X (0x8048000+0xa9218) [0x80f1218] 17: X (0x8048000+0xc537a) [0x810d37a] 18: X (0x8048000+0x3b7cd) [0x80837cd] 19: X (0x8048000+0x3d3c8) [0x80853c8] 20: X (0x8048000+0xda752) [0x8122752] 21: X (0x8048000+0x1029a0) [0x814a9a0] 22: X (mieqProcessDeviceEvent+0x1b4) [0x8099164] 23: X (mieqProcessInputEvents+0x6c) [0x80991ec] 24: X (ProcessInputEvents+0x17) [0x80c1ff7] 25: X (0x8048000+0x2620e) [0x806e20e] 26: X (0x8048000+0x1a30a) [0x806230a] 27: /lib/libc.so.6 (__libc_start_main+0xe6) [0x8e2cc6] 28: X (0x8048000+0x19ee1) [0x8061ee1]
9effc1adf1e7ba57fb3b10909762b76c1ae12f61 is the first commit causes system hang commit 9effc1adf1e7ba57fb3b10909762b76c1ae12f61 Author: Eric Anholt <eric@anholt.net> Date: Mon Oct 11 16:02:08 2010 -0700 i965: re-enable gen6 IF statements in the fragment shader. IF statements were getting flattened while they were broken. With Zhenyu's last fix for ENDIF's type, everything appears to have lined up to actually work. This regresses two tests: glsl1-! (not) operator (1, fail) glsl1-! (not) operator (1, pass) but fixes tests that couldn't work before because the IFs couldn't be flattened: glsl-fs-discard-01 occlusion-query-discard (and, naturally, this should be a performance improvement for apps that actually use IF statements to avoid executing a bunch of code).
Now,in all, there are 4 piglit cases which are able to make system hang. shaders_glsl-fs-convolution-2 shaders_glsl-fs-if-nested-loop shaders_glsl-fs-loop shaders_glsl-fs-loop-nested
commit 251d15d888dfaea045447f9e56ea094cb726830b Author: Eric Anholt <eric@anholt.net> Date: Wed Dec 1 15:36:26 2010 -0800 i965: Enable IF statements in the VS. While the actual IF instructions were fixed by Zhenyu, we were still flattening them to conditional moves. commit 843a6a308e05bd4bf2056e08ec65ac4770097b93 Author: Eric Anholt <eric@anholt.net> Date: Wed Dec 1 14:02:14 2010 -0800 i965: Add support for gen6 CONTINUE instruction emit. At this point, piglit tests for fragment shader loops are working. commit 00e5a743e2ee3981a34b95067a97fa73c0f5d779 Author: Eric Anholt <eric@anholt.net> Date: Wed Dec 1 11:46:46 2010 -0800 i965: Add support for gen6 BREAK ISA emit. There are now two targets: the hop-to-end-of-block target, and the target for where to resume execution for active channels. commit 4890e0f09c934e3ffb692b417e5444e43685c876 Author: Eric Anholt <eric@anholt.net> Date: Wed Dec 1 10:45:52 2010 -0800 i965: Add support for gen6 DO/WHILE ISA emit. There's no more DO since there's no more mask stack, and WHILE has been shuffled like IF was.
All the 4 cases mentioned have passed.
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.