On Tue, 11 May 2010 16:55:27 +0100, Chris Wilson wrote: > By keeping buffers that are in use by the CPU, having been mmapped and > moved to the CPU or GTT domain since their last rendering on a separate > inactive list, prevents the first-pass eviction process from unbinding > one of these buffers. Those buffers are evicted as normal during > evict-everything so that the memory can be recovered under high pressure > or a forced idle. > > References: > > Bug 20152 - [G45/GM965 UXA] cannot view JPG in firefox when running UXA > https://bugs.freedesktop.org/show_bug.cgi?id=20152 > > Bug 24369 - Hang when scrolling firefox page with window in front > https://bugs.freedesktop.org/show_bug.cgi?id=24369 > > Bug 15911 - Intermittent X crash (freeze) > https://bugzilla.kernel.org/show_bug.cgi?id=15911 Couldn't this be more easily handled by the times where you would move to the tail of mmap, just move to the tail of inactive? Since inactive is "obj_priv->gtt_space && !obj_priv->active" already.