Comment 44 for bug 603064

Revision history for this message
Bryce Harrington (bryce) wrote : Re: [i965gm] GPU lockup 77c6dfe5

Upstream bug was solved with the following commit. I'm going to re-target this to the kernel team, so they can verify the fix is included for natty and sru it to maverick if appropriate. I am not seeing the git commit id in the ubuntu-maverick git tree, but maybe its commit id changed when it was backported.

commit 85345517fe6d4de27b0d6ca19fef9d28ac947c4a
Author: Chris Wilson <email address hidden>
Date: Sat Nov 13 09:49:11 2010 +0000

    drm/i915: Retire any pending operations on the old scanout when switching

    An old and oft reported bug, is that of the GPU hanging on a
    MI_WAIT_FOR_EVENT following a mode switch. The cause is that the GPU is
    waiting on a scanline counter on an inactive pipe, and so waits for a
    very long time until eventually the user reboots his machine.

    We can prevent this either by moving the WAIT into the kernel and
    thereby incurring considerable cost on every swapbuffers, or by waiting
    for the GPU to retire the last batch that accesses the framebuffer
    before installing a new one. As mode switches are much rarer than swap
    buffers, this looks like an easy choice.

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=28964
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=29252
    Signed-off-by: Chris Wilson <email address hidden>
    Cc: <email address hidden>