Bug 24369

Summary: Hang when scrolling firefox page with window in front
Product: xorg Reporter: Clemens Eisserer <linuxhippy>
Component: Driver/intelAssignee: Chris Wilson <chris>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: david
Version: unspecifiedKeywords: NEEDINFO
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
my xorg log
none
stack trace
none
Protect mmapped buffers from casual eviction. none

Description Clemens Eisserer 2009-10-07 01:24:10 UTC
Created attachment 30135 [details]
my xorg log

When scrolling the following page:

http://www.thediversityedge.com/diversity_champions.htm

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.
Comment 1 Clemens Eisserer 2009-10-07 01:25:36 UTC
Created attachment 30136 [details]
stack trace

could it be a single blit taking more than 30s?
Comment 2 Eric Anholt 2009-10-07 12:25:00 UTC
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.

Comment 3 Clemens Eisserer 2009-10-07 14:41:57 UTC
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.
Comment 4 Chris Wilson 2009-12-09 03:18:58 UTC
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.
Comment 5 Chris Wilson 2010-02-23 11:42:35 UTC
*** Bug 26522 has been marked as a duplicate of this bug. ***
Comment 6 Clemens Eisserer 2010-03-03 08:22:17 UTC
still happens with intel-2.10.901 + kernel-2.6.32.8 :/
Comment 7 Chris Wilson 2010-05-08 12:14:38 UTC
Created attachment 35511 [details] [review]
Protect mmapped buffers from casual eviction.
Comment 8 Gordon Jin 2010-07-28 18:53:52 UTC
Clemens/Okias, does this still exist? Can you try Chris's patch?
Comment 9 David Heidelberg (okias) 2010-07-29 06:01:47 UTC
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.
Comment 10 Chris Wilson 2010-08-08 12:12:29 UTC
Done!


commit e2bf07fe23fd11a2acba609bf34ccc59c5553389
Author: Chris Wilson <chris@chris-wilson.co.uk>
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.
    
    Reference:
    
      Bug 15911 - Intermittent X crash (freeze)
      https://bugzilla.kernel.org/show_bug.cgi?id=15911
    
      Bug 20152 - 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 28478 - Intermittent graphics lockups due to overflow/loop
      https://bugs.freedesktop.org/show_bug.cgi?id=28478
    
    v2: Attempt to clarify the logic and order of eviction through the use
    of comments and macros.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.