On Tue, Aug 13, 2013 at 7:13 PM, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote: > On Tue, Aug 13, 2013 at 07:03:44PM +0200, Sedat Dilek wrote: >> On Tue, Aug 13, 2013 at 6:37 PM, Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote: >> > On Tue, Aug 13, 2013 at 6:34 PM, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote: >> >> On Tue, Aug 13, 2013 at 06:23:29PM +0200, Sedat Dilek wrote: >> >>> On Tue, Aug 13, 2013 at 5:59 PM, Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote: >> >>> > I have bisected the issue on Linux v3.11-rc5 + drm-intel-nightly: >> >>> > >> >>> > 5456fe3882812aba251886e36fe55bfefb8e8829 is the first bad commit >> >>> > commit 5456fe3882812aba251886e36fe55bfefb8e8829 >> >>> > Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> >> >>> > Date: Thu Aug 8 14:41:07 2013 +0100 >> >>> > >> >>> > drm/i915: Allocate LLC ringbuffers from stolen >> >>> > >> >>> > As stolen objects now behave identically (wrt to default LLC cacheing) >> >>> > as their normal system counterparts, we no longer have to differentiate >> >>> > our usage for ringbuffers. So allocate them from stolen on SNB+ as well. >> >>> > >> >>> > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> >> >>> > Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> >> >>> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx> >> >>> > >> >>> > :040000 040000 de063a052f39095f4d2f51b49caef9f827df41e8 >> >>> > 1c819aa5501a9fcc9912a5c7c037c71b9b9e9a6b M drivers >> >>> > >> >>> > See also attached files! >> >>> > >> >>> >> >>> With the attached revert-patch my system is OK (with my customized X stack). >> >> >> >> No indication of a GPU hang? I'm puzzled as to how this ends up with the >> >> scanout being misread. >> >> >> >> cat /sys/kernel/debug/dri/0/i915_gem_stolen >> >> cat /sys/kernel/debug/dri/0/i915_gem_framebuffer >> >> >> >> would be interesting. > >> Attached both outputs with GOOD and BAD (BROKEN) kernel. > > ggtt offset is the same for both setups, the only difference between the > two is the location of fbcon in stolen memory. > > Can you please attach the output of intel_reg_dumper for good/bad? It's > a long shot... > > Speaking of long shots, try this (slightly different to the earlier patch): > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index a21f935..37ad772 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -1850,6 +1850,9 @@ intel_pin_and_fence_fb_obj(struct drm_device *dev, > BUG(); > } > > + if (obj->stolen && INTEL_INFO(dev)->gen >= 6) > + alignment = 256 * 1024; > + > /* Note that the w/a also requires 64 PTE of padding following the > * bo. We currently fill all unused PTE with the shadow page and so > * we should always have valid PTE following the scanout preventing > > > -- Files attached. - Sedat -
fbcon size: 1366 x 768, depth 24, 32 bpp, refcount 2, obj ffff88010c54fe40: p g 4128KiB 77 00 0 0 0 uncached (name: 1) (pinned x 1) (display) (ggtt offset: 00080000, size: 00408000) (stolen: 00060000) (p mappable) user size: 1366 x 768, depth 24, 32 bpp, refcount 3, obj ffff88010c54fcc0: pXg 5120KiB 36 02 -591 -591 0 uncached dirty (name: 3) (pinned x 1) (display) (fence: 0) (ggtt offset: 00488000, size: 00500000) (p mappable) (blitter ring)
fbcon size: 1366 x 768, depth 24, 32 bpp, refcount 2, obj ffff880073fca200: p g 4128KiB 77 00 0 0 0 uncached (name: 1) (pinned x 1) (display) (ggtt offset: 00080000, size: 00408000) (stolen: 00000000) (p mappable) user size: 1366 x 768, depth 24, 32 bpp, refcount 3, obj ffff880118928b40: pXg 5120KiB 36 02 -12 -12 0 uncached dirty (name: 3) (pinned x 1) (display) (fence: 0) (ggtt offset: 00488000, size: 00500000) (p mappable) (blitter ring)
Stolen: ffff880072c39c80: p g 128KiB 40 40 0 0 0 snooped or LLC dirty (pinned x 1) (ggtt offset: 00001000, size: 00020000) (stolen: 00000000) (p mappable) ffff880072c39800: p g 128KiB 40 40 0 0 0 snooped or LLC dirty (pinned x 1) (ggtt offset: 00023000, size: 00020000) (stolen: 00020000) (p mappable) ffff880072c39500: p g 128KiB 40 40 0 0 0 snooped or LLC dirty (pinned x 1) (ggtt offset: 00044000, size: 00020000) (stolen: 00040000) (p mappable) ffff88010c54fe40: p g 4128KiB 77 00 0 0 0 uncached (name: 1) (pinned x 1) (display) (ggtt offset: 00080000, size: 00408000) (stolen: 00060000) (p mappable) Total 4 objects, 4620288 bytes, 4620288 GTT size
Stolen: ffff880073fca200: p g 4128KiB 77 00 0 0 0 uncached (name: 1) (pinned x 1) (display) (ggtt offset: 00080000, size: 00408000) (stolen: 00000000) (p mappable) Total 1 objects, 4227072 bytes, 4227072 GTT size