Bug 36228

Summary: [855GM] Driver is very laggy after git-commit "Take advantage of the kernel flush for dirty bo in the busy ioctl"
Product: xorg Reporter: Stefan Glasenhardt <stefan>
Component: Driver/intelAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log with driver crashing (855GM-based System)
none
Remove kernel-flush git-commits none

Description Stefan Glasenhardt 2011-04-14 03:54:19 UTC
Hi,

I'm using the following software-components:

Latest git of intel-driver, latest git of libdrm, kernel version 2.6.38.2 and Xserver 1.10.0.902 (Ubuntu 11.04).

I've testet the driver two systems (830M and 950GMA). Both systems show the same behavior:

Scrolling in Firefox 4.0 is very laggy. When i'm using the mouse-wheel to scroll a single line, Firefox doesn't react instantly but the scroll-event occurs about half a second after touching the mouse-wheel.

In GNOME-Terminal the lags are so bad, that typing into it feels completely awkward.

The lags occured after git-commit f104189bb9439ab0e05f04d4be020813eb04bf9 ("Take advantage of the kernel flush for dirty bo in the busy ioctl"). The version before that commit does not have these lags.

The strange thing is that when using the latest git-version under Ubuntu 10.04 (kernel version 2.6.32.x) the lags don't occur. So maybe it's a kernel problem?

Greetings Stefan
Comment 1 Chris Wilson 2011-04-14 05:07:58 UTC
Stefan, can you please clarify which version of xf86-video-intel you last tested? I tried to address the issue with:

commit 97e9557619e58ef769eb7cbf1a03fbd52be7f2ed
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 8 13:38:48 2011 +0100

    intel: Restore manual flush for old kernels
    
    Daniel Vetter pointed out that the automagic flush by the kernel for the
    busy-ioctl was only introduced upstream in 2.6.37. So we still need to
    manually emit a flush on old kernels.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 2 Stefan Glasenhardt 2011-04-14 06:21:24 UTC
Created attachment 45607 [details]
Xorg.0.log with driver crashing (855GM-based System)
Comment 3 Stefan Glasenhardt 2011-04-14 06:23:01 UTC
I've tested the latest version 2.15 from today. With this version rendering is very laggy. I've currently testing version 2.15 with the following git-commits removed from the source-code:

97e9557619e58ef769eb7cbf1a03fbd52be7f2ed - "intel: Restore manual flush for old kernels"

6f104189bb9439ab0e05f04d4be020813eb04bf9 - "Take advantage of the kernel flush for dirty bo in the busy ioctl"

When these two commits are removed of the source code, the lags disappear. I've tested this version on the systems mentioned above and the driver works normally. It also compiles and works perfectly under Ubuntu 10.04.

There must be a big problem with this feature because the "Restore manual flush"-commit seems to break the driver on kernel version 2.6.38 on older chipsets (830M and 855GM). On my old notebook the Xserver crashes with this git-commit and another user reported the same crash with exactly the same crash-message to me on his 855GM-based notebook (See attachment).

I've also attached the patch i've made to remove the two commits.
Comment 4 Stefan Glasenhardt 2011-04-14 06:23:24 UTC
Created attachment 45608 [details] [review]
Remove kernel-flush git-commits
Comment 5 Eugeni Dodonov 2011-09-08 15:56:13 UTC
This issue is affecting a hardware component which is not being actively worked on anymore.

Moving the assignee to the dri-devel list as contact, to give this issue a better coverage.
Comment 6 Chris Wilson 2012-04-16 05:46:28 UTC
Accidentally fixed in the meantime. Sigh.

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.