Bug 85412 - [HSW] Crash in i915_gem_userptr_mn_invalidate_range_start when trying to play a video
Summary: [HSW] Crash in i915_gem_userptr_mn_invalidate_range_start when trying to play...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-10-24 17:10 UTC by Vincent Bernat
Modified: 2017-07-24 22:50 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg showing the crash, CPU 2 is stuck (145.59 KB, text/plain)
2014-10-24 17:10 UTC, Vincent Bernat
no flags Details

Description Vincent Bernat 2014-10-24 17:10:31 UTC
Created attachment 108360 [details]
dmesg showing the crash, CPU 2 is stuck

Hi!

ii  libdrm-intel1: 2.4.58-2     amd64        Userspace interface to intel-spec
ii  xserver-xorg-v 2:2.21.15-2+ amd64        X.Org X server -- Intel i8xx, i9x

Linux eizo 3.16-2-amd64 #1 SMP Debian 3.16.3-2 (2014-09-20) x86_64 GNU/Linux

From time to time, I get a crash when starting a video in XBMC. This is not easily reproducible. Nothing in xorg.0.log. Once crashed, X.org is freezed but the remaining of the CPU seems to run correctly as long as they don't need to query stuff on the stucked CPU. See the attached dmesg.

Maybe this is related to this bug reported in the Debian BTS:
 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765590
Comment 1 Vincent Bernat 2014-10-24 17:35:09 UTC
Oh, and forgot:

00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Generation Core Processor Family Integrated Graphics Controller [8086:041e] (rev 06)
Comment 2 Chris Wilson 2014-10-24 19:41:01 UTC
commit 6c308fecb4d1f928d52f9586d976f79b37149388
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jul 11 11:28:01 2014 +0100

    drm/i915: Initialise userptr mmu_notifier serial to 1
    
    During the range invalidate, we walk the list of buffers associated with
    the mmu_notifer and find the ones that overlap the range. An
    optimisation is made to speed up the iteration by assuming the previous
    iter is still valid whilst the tree is unmodified. This exposes a bug
    when a range invalidate is triggered after we have just created the
    mmu_notifier, but before attaching any buffers. In that case, we presume
    we have an unmodified list and start walking from the last iter which is
    NULL. Oops.
    
    The easiest fix is then to initialise the serial of the tree to 1.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
    Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
    Testecase: igt/gem_userptr_blts/stress-mm
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Oops, not cc'ed stable.
Comment 3 Rodrigo Vivi 2015-01-15 00:08:29 UTC
This patch has been merged on -nightly. Feel free to reopen the bug if you still face the issue on latest kernel that has this patch.
Comment 4 Chris Wilson 2015-01-15 08:09:18 UTC
The point was that this should be in stable@


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.