[Bug 75785] [BDW Regression]gnome-session causes system hang

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Mar 6 00:28:12 PST 2014


https://bugs.freedesktop.org/show_bug.cgi?id=75785

lu hua <huax.lu at intel.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |NEW
           Assignee|chris at chris-wilson.co.uk    |ben at bwidawsk.net

--- Comment #4 from lu hua <huax.lu at intel.com> ---
Bisect shows: 307dc4f99f6d3a74a78b0e776838f35b2004f14d is the first bad commit
commit 307dc4f99f6d3a74a78b0e776838f35b2004f14d
Author: Ben Widawsky <benjamin.widawsky at intel.com>
Date:   Thu Feb 20 11:51:21 2014 -0800

    drm/i915/bdw: Reorganize PT allocations

    The previous allocation mechanism would get 2 contiguous allocations,
    one for the page directories, and one for the page tables. As each page
    table is 1 page, and there are 512 of these per page directory, this
    goes to 2MB. An unfriendly request at best. Worse still, our HW now
    supports 4 page directories, and a 2MB allocation is not allowed.

    In order to fix this, this patch attempts to split up each page table
    allocation into a single, discrete allocation. There is nothing really
    fancy about the patch itself, it just has to manage an extra pointer
    indirection, and have a fancier bit of logic to free up the pages.

    To accommodate some of the added complexity, two new helpers are
    introduced to allocate, and free the page table pages.

    NOTE: I really wanted to split the way we do allocations, and the way in
    which we identify the page table/page directory being used. I found
    splitting this functionality up to be too unwieldy. I apologize in
    advance to the reviewer. I'd recommend looking at the result, rather
    than the diff.

    v2/NOTE2: This patch predated commit:
    6f1cc993518462ccf039e195fabd47e7aa5bfd13
    Author: Chris Wilson <chris at chris-wilson.co.uk>
    Date:   Tue Dec 31 15:50:31 2013 +0000

        drm/i915: Avoid dereference past end of page arr

    It fixed the same issue as that patch, but because of the limbo state of
    PPGTT, Chris patch was merged instead. The excess churn is a result of
    my using my original patch, which has my preferred naming. Primarily
    act_* is changed to which_*, but it's mostly the same otherwise. I've
    kept the convention Chris used for the pte wrap (I had something
    slightly different, and broken - but fixable)

    v3: Rename which_p[..]e to drop which_ (Chris)
    Remove BUG_ON in inner loop (Chris)
    Redo the pde/pdpe wrap logic (Chris)

    v4: s/1MB/2MB in commit message (Imre)
    Plug leaking gen8_pt_pages in both the error path, as well as general
    free case (Imre)

    v5: Rename leftover "which_" variables (Imre)
    Add the pde = 0 wrap that was missed from v3 (Imre)

    Reviewed-by: Imre Deak <imre.deak at intel.com>
    Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
    Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20140306/da83f9d9/attachment.html>


More information about the intel-gfx-bugs mailing list