Created attachment 30135 [details]
my xorg log
When scrolling the following page:
in firefox (3.5.3 here) I get hangs when another window is on top of firefox' window.
I am running fedora rawhide, with a 2.9 release candidate on my i945GM without a composition manager.
Steps to reproduce:
1. Load the webpage in firefox
2. Open a terminal window on top of firefox, instruct your WM to keep it always on top (or only use the scroll wheel to scroll)
3. Scroll inside Firefox, soon X will hang - only the mouse will move slowly.
Created attachment 30136 [details]
could it be a single blit taking more than 30s?
traces like this are usually the gtt-mapping faulting choosing the wrong thing to kick out and userland not making progress or making very slow progress. If so, sysprof will show all your time in page faulting.
Unfourtunatly, sysprof doesn't report in-kernel time for me :-/
Could you give it a try, please?
However, the web-page mentioned contains a huge amount of large images scaled down, so you explanation sounds quite logical.
I've done some work recently in this area and already have had one patch shot down in flames that should help address this issue... So reassigning to myself.
*** Bug 26522 has been marked as a duplicate of this bug. ***
still happens with intel-2.10.901 + kernel-22.214.171.124 :/
Created attachment 35511 [details] [review]
Protect mmapped buffers from casual eviction.
Clemens/Okias, does this still exist? Can you try Chris's patch?
I don't have laptop with intel card with me, so I will be able test it when I got it in my hands, which will be circa 22.8.
Author: Chris Wilson <firstname.lastname@example.org>
Date: Sat Aug 7 11:01:24 2010 +0100
drm/i915: Implement fair lru eviction across both rings. (v2)
Based in a large part upon Daniel Vetter's implementation and adapted
for handling multiple rings in a single pass.
This should lead to better gtt usage and fixes the page-fault-of-doom
triggered. The fairness is provided by scanning through the GTT space
amalgamating space in rendering order. As soon as we have a contiguous
space in the GTT large enough for the new object (and its alignment),
evict any object which lies within that space. This should keep more
objects resident in the GTT.
Doing throughput testing on a PineView machine with cairo-perf-trace
indicates that there is very little difference with the new LRU scan,
perhaps a small improvement... Except oddly for the poppler trace.
Bug 15911 - Intermittent X crash (freeze)
Bug 20152 - cannot view JPG in firefox when running UXA
Bug 24369 - Hang when scrolling firefox page with window in front
Bug 28478 - Intermittent graphics lockups due to overflow/loop
v2: Attempt to clarify the logic and order of eviction through the use
of comments and macros.
Signed-off-by: Chris Wilson <email@example.com>
Reviewed-by: Daniel Vetter <firstname.lastname@example.org>
Signed-off-by: Eric Anholt <email@example.com>