Bug 32259

Summary: [regression piketon]x11perf cause system to hang
Product: DRI Reporter: fangxun <xunx.fang>
Component: DRM/IntelAssignee: Chris Wilson <chris>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: high CC: jbarnes
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg file none

Description fangxun 2010-12-09 01:25:57 UTC
Created attachment 40948 [details]
dmesg file

System Environment:
--------------------------
Arch:           x86_64
Platform:       piketon
Libdrm:		(master)2.4.22-21-g537703fd4805e9cd352965fce642670986822d22
Mesa:		(master)c64447f47de168e82086bc2fb483817b82e59cab
Xserver:	(server-1.9-branch)xorg-server-1.9.2.902
Xf86_video_intel: (master)2.13.901-25-g9b967807c2d240488a715509649663aac3583532
Kernel:	(drm-intel-fixes) 1b39d6f37622f1da70aa2cfd38bfff9a52c13e05


Bug detailed description:
-------------------------
Run "x11perf -rgb10text" 2 or 3 times, GPU hangs at first, and then system hangs. This issues happens on piketon, works fine on pineview and huronriver.
It's Kernel regression.


Reproduce steps:
----------------
1. xinit&
2. x11perf -rgb10text
Comment 1 Chris Wilson 2010-12-09 01:37:40 UTC
Sure it's a kernel regression?

The ddx is completely different for pnv vs ilk vs snb and has seen a large flux of patches in the last week.

Whereas the only real difference for ilk kernel side is the use of PIPE_CONTROL... So it would be interesting to check behaviour on drm-intel-next.
Comment 2 fangxun 2010-12-09 01:54:46 UTC
Sure it's kernel regression. The last known good commit is Kernel: (drm-intel-next)5aa7d52aebfc11760bbc5b081ed621227bb77981. BTW, It works fine on drm-intel-fixes.
Comment 3 Chris Wilson 2010-12-09 03:11:25 UTC
Sorry, I am just a little confused. Can you confirm you did mean:

Broken: (drm-intel-fixes)1b39d6f37622f1da70aa2cfd38bfff9a52c13e05
Working: (drm-intel-next)5aa7d52aebfc11760bbc5b081ed621227bb77981

Thanks.
Comment 4 Chris Wilson 2010-12-09 04:57:09 UTC
Found one bug that is definitely related. Pushed to drm-intel-staging:

commit 8c0a6bfef165ccdbf5d73afb9dd660107b0c98d5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 9 12:56:37 2010 +0000

    drm/i915/ringbuffer: Handle wrapping of the autoreported HEAD
    
    If the tail advances beyond the autoreport HEAD value, then we need to
    fallback to an uncached read of the HEAD register in order to ascertain
    the correct amount of remaining space in the ringbuffer.
    
    Reported-by: Fang, Xun <xunx.fang@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32259
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

The reason why that would only affect ilk vs pnv/snb is the disparity between CPU and GPU speeds (plus the extra synchronization overheads on SNB -fixes) and that with the PIPE_CONTROL workaround, ilk can only fit a (relatively) small number of requests.
Comment 5 fangxun 2010-12-09 20:49:56 UTC
Sorry, the broken should be Kernel:(drm-intel-next) c57802706aad9f179f2219415717896b3c177845. Thanks for you quickly fix it. 
Verified with Kernel:(drm-intel-next)8c0a6bfef165ccdbf5d73afb9dd660107b0c98d5.
Comment 6 Elizabeth 2017-10-06 14:53:13 UTC
Closing old verified.

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.