Bug 18902

Summary: [i915] 2.6.36-rc4-git2 (Fedora snapshot) - kernel BUG at drivers/gpu/drm/i915/i915_gem.c:1444!
Product: Drivers Reporter: Maciej Rutecki (maciej.rutecki)
Component: Video(DRI - Intel)Assignee: drivers_video-dri-intel (drivers_video-dri-intel)
Status: CLOSED CODE_FIX    
Severity: normal CC: florian, maciej.rutecki, rjw, shawn.starr
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.36-rc4-git2 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 16444    

Description Maciej Rutecki 2010-09-20 19:39:21 UTC
Subject    : [i915] 2.6.36-rc4-git2 (Fedora snapshot) - kernel BUG at drivers/gpu/drm/i915/i915_gem.c:1444!
Submitter  : Shawn Starr <shawn.starr@rogers.com>
Date       : 2010-09-20 5:23
Message-ID : 650240.84760.qm@smtp101.rog.mail.re2.yahoo.com
References : http://marc.info/?l=linux-kernel&m=128496063804248&w=2

This entry is being used for tracking a regression from 2.6.35. Please don't
close it until the problem is fixed in the mainline.
Comment 1 Florian Mickler 2010-09-22 08:00:16 UTC
Fixed in mainline

Gitweb:     http://git.kernel.org/linus/af6261031317f646d22f994c0b467521e47aa49f
Commit:     af6261031317f646d22f994c0b467521e47aa49f
Parent:     41a51428916ab04587bacee2dda61c4a0c4fc02f
Author:     Chris Wilson <chris@chris-wilson.co.uk>
AuthorDate: Mon Sep 20 10:31:40 2010 +0100
Committer:  Chris Wilson <chris@chris-wilson.co.uk>
CommitDate: Mon Sep 20 20:50:00 2010 +0100

    drm/i915: Hold a reference to the object whilst unbinding the eviction list    

    During heavy aperture thrashing we may be forced to wait upon several active
    objects during eviction. The active list may be the last reference to
    these objects and so the action of waiting upon one of them may cause
    another to be freed (and itself unbound). To prevent the object
    disappearing underneath us, we need to acquire and hold a reference
    whilst unbinding.
    
    This should fix the reported page refcount OOPS:
    
    kernel BUG at drivers/gpu/drm/i915/i915_gem.c:1444!
    ...
    RIP: 0010:[<ffffffffa0093026>]  [<ffffffffa0093026>] i915_gem_object_put_pages+0x25/0xf5 [i915]
    Call Trace:
     [<ffffffffa009481d>] i915_gem_object_unbind+0xc5/0x1a7 [i915]
     [<ffffffffa0098ab2>] i915_gem_evict_something+0x3bd/0x409 [i915]
     [<ffffffffa0027923>] ? drm_gem_object_lookup+0x27/0x57 [drm]
     [<ffffffffa0093bc3>] i915_gem_object_bind_to_gtt+0x1d3/0x279 [i915]
     [<ffffffffa0095b30>] i915_gem_object_pin+0xa3/0x146 [i915]
     [<ffffffffa0027948>] ? drm_gem_object_lookup+0x4c/0x57 [drm]
     [<ffffffffa00961bc>] i915_gem_do_execbuffer+0x50d/0xe32 [i915]
    
    Reported-by: Shawn Starr <shawn.starr@rogers.com>
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=18902
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>