Bug 41733 - [g4x] Screen jitters every so often, especially when laptop under load
Summary: [g4x] Screen jitters every so often, especially when laptop under load
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: 7.6 (2010.12)
Hardware: x86-64 (AMD64) Linux (All)
: high normal
Assignee: Chris Wilson
QA Contact: Xorg Project Team
Keywords: regression
Depends on:
Reported: 2011-10-12 14:35 UTC by Bryce Harrington
Modified: 2012-01-27 08:54 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

BootDmesg.txt (61.93 KB, text/plain)
2011-10-12 14:41 UTC, Bryce Harrington
no flags Details
CurrentDmesg.txt (245.86 KB, text/plain)
2011-10-12 14:42 UTC, Bryce Harrington
no flags Details
XorgLog.txt (77.25 KB, text/plain)
2011-10-12 14:42 UTC, Bryce Harrington
no flags Details
dmesg with drm.debug=0xe (80.20 KB, text/plain)
2011-10-13 06:08 UTC, Jonathan Lange
no flags Details
dmesg w/ drm.debug=0x1 (67.34 KB, text/plain)
2011-10-14 04:20 UTC, Jonathan Lange
no flags Details
dmesg w/ drm.debug=0xe for real (151.84 KB, text/plain)
2011-10-30 08:27 UTC, Jonathan Lange
no flags Details
dmesg snapshot taken w/ drm.debug=0x1 after reproducing (242.17 KB, text/plain)
2011-10-30 08:30 UTC, Jonathan Lange
no flags Details

Description Bryce Harrington 2011-10-12 14:35:08 UTC
Forwarding this bug from Ubuntu reporter Jonathan Lange:

When system is under load, the graphics experience periodic glitches.

Perhaps under the load of oneiric's Unity3D the driver isn't able to keep up with the graphics loads, and isn't able to fill the pipe 100% of the time?  How could that be proved/disproved (or are we way off base?)

[Original Description]
I have a Lenovo X200 laptop, and I run Unity 3D. Every so often, since oneiric, my screen jitters. That is, it seems to jump up and down like it has a nervous twitch. I can't reproduce it exactly, but it seems more likely to happen when my system is under load.

I've monitored .xsession-errors when the twitch happens, and nothing is dumped there. I've also checked /var/crash/, but none of the crashes there have times that match the twitch.

Chris Halse Rogers suggested trying, "echo 0 > /sys/module/drm_kms_helper/parameters/poll", but that doesn't seem to correct the problem.

In addition, unity_support_test crashed while filing this bug.

DistroRelease: Ubuntu 11.10
Package: xserver-xorg 1:7.6+7ubuntu7
ProcVersionSignature: Ubuntu 3.0.0-10.16-generic 3.0.4
Uname: Linux 3.0.0-10-generic x86_64
ApportVersion: 1.22.1-0ubuntu2
Architecture: amd64
CompizPlugins: [core,bailer,detection,composite,opengl,compiztoolbox,decor,mousepoll,resize,gnomecompat,place,wall,vpswitch,move,regex,snap,session,animation,expo,workarounds,ezoom,staticswitcher,fade,scale,unityshell]
CompositorRunning: compiz
Date: Wed Sep 14 09:31:23 2011
DistUpgraded: Log time: 2011-07-26 11:37:40.528783
DistroCodename: oneiric
DistroVariant: ubuntu
EcryptfsInUse: Yes
ExtraDebuggingInterest: Yes, whatever it takes to get this fixed in Ubuntu
GlAlternative: lrwxrwxrwx 1 root root 24 2010-03-20 18:53 /etc/alternatives/gl_conf -> /usr/lib/mesa/ld.so.conf
 Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07) (prog-if 00 [VGA controller])
   Subsystem: Lenovo Device [17aa:20e4]
   Subsystem: Lenovo Device [17aa:20e4]
MachineType: LENOVO 7454A12
 PATH=(custom, user)
 LANG=en_AU.UTF-8ProcKernelCmdLine: root=UUID=66c83d9d-bb68-4f51-995c-63e9b4ee025f ro quiet splash
SourcePackage: xorg
UnitySupportTest: Error: command ['/usr/lib/nux/unity_support_test', '-p', '-f'] failed with exit code -11:
UpgradeStatus: Upgraded to oneiric on 2011-07-26 (49 days ago)
dmi.bios.date: 07/30/2008
dmi.bios.vendor: LENOVO
dmi.bios.version: 6DET28WW (1.05 )
dmi.board.name: 7454A12
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr6DET28WW(1.05):bd07/30/2008:svnLENOVO:pn7454A12:pvrThinkPadX200:rvnLENOVO:rn7454A12:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 7454A12
dmi.product.version: ThinkPad X200
dmi.sys.vendor: LENOVO
version.compiz: compiz 1:
version.ia32-libs: ia32-libs 20090808ubuntu20
version.libdrm2: libdrm2 2.4.26-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 7.11.0+git20110128.2a18d195-0ubuntu0sarvatt
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 7.11.0+git20110128.2a18d195-0ubuntu0sarvatt
version.xserver-xorg: xserver-xorg 1:7.6+7ubuntu7
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.6.0-1ubuntu13
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.99~git20110811.g93fc084-0ubuntu1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.15.901-1ubuntu2
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau N/A
Comment 1 Bryce Harrington 2011-10-12 14:38:07 UTC
Jonathan has also tested with KMS debugging turned on, but nothing is printed to dmesg when the glitch occurs.

I'm having him re-test natty again (to rule out hardware), as well as a clean oneiric image (to rule out possible local config), but suspect those won't turn up anything.
Comment 2 Bryce Harrington 2011-10-12 14:40:28 UTC
A video to demonstrate the problem is at this link (file too large for bugzilla):


The quality of the video is unfortunately poor, but the glitch occurs around the 9-10 sec mark.
Comment 3 Bryce Harrington 2011-10-12 14:41:52 UTC
Created attachment 52276 [details]
Comment 4 Bryce Harrington 2011-10-12 14:42:07 UTC
Created attachment 52277 [details]
Comment 5 Bryce Harrington 2011-10-12 14:42:25 UTC
Created attachment 52278 [details]
Comment 6 Chris Wilson 2011-10-12 15:00:39 UTC
Afaict from that video, the glitch was limited to a vertical shift of the chat pane within xchat. Is the glitch typically limited to a single window?
Comment 7 Jonathan Lange 2011-10-13 02:19:00 UTC
It's a whole screen thing. That said, I do tend to run windows maximized, and it *is* a momentary effect, so I could be wrong. I doubt it though.

Sorry for the delay in answering. I had typed out an answer before and hit "Commit", but no dice.
Comment 8 Chris Wilson 2011-10-13 04:44:54 UTC
A whole screen jitter is much more likely to be a FIFO underrun, which sadly are only reported with drm.debug=0x1 (along with every ioctl, so too noisy to be useful).

Can you attach your boot dmesg with drm.debug=0xe, I want to confirm if this hardware also fixed FIFO watermarks due to a silicon bug, in which case there is very little we can do (if it does turn out to be a FIFO issue).
Comment 9 Jonathan Lange 2011-10-13 06:08:27 UTC
Created attachment 52289 [details]
dmesg with drm.debug=0xe

Attached is the dmesg with drm.debug=0xe included. I've triggered the glitch on this boot.

Also, I've tested with clean natty and oneiric live USB sticks. I can confirm that the issue does occur with clean oneiric and does *not* occur with clean natty.
Comment 10 Chris Wilson 2011-10-13 06:59:21 UTC
Ok, the important line is

[drm:g4x_update_wm], Setting FIFO watermarks - A: plane=2, cursor=2, B: plane=26, cursor=6, SR: plane=59, cursor=6

which means that your hardware did not inherit the broken Crestline silicon, and an actual FIFO underrun is much less likely. Might still be worth running with drm.debug=0x1 and keeping an eye out for FIFO underrun warnings. And as is the nature of such issues, a change in rendering patterns is also likely to provoke running into different memory constraints (so a FIFO underrun is susceptible to userspace changes).
Comment 11 Jonathan Lange 2011-10-13 07:22:15 UTC
Just to be clear, if I run with 0x1, what exactly am I grepping for in dmesg?
Comment 12 Chris Wilson 2011-10-13 07:30:28 UTC
if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS)
  DRM_DEBUG_DRIVER("pipe %c underrun\n", pipe_name(pipe));

So that would be "pipe [AB] underrun"
Comment 13 Jonathan Lange 2011-10-14 04:20:46 UTC
Created attachment 52329 [details]
dmesg w/ drm.debug=0x1

Here's w/ drm.debug=0x1. No 'pipe [AB] underrun' regex matches.
Comment 14 Chris Wilson 2011-10-14 04:29:10 UTC
(In reply to comment #13)
> Created an attachment (id=52329) [details]
> dmesg w/ drm.debug=0x1
> Here's w/ drm.debug=0x1. No 'pipe [AB] underrun' regex matches.

To check the obvious as it is quite a short dmesg (compared to what I was expecting, very few ioctls i.e. very few drawing commands), did you observe flicker within that time?
Comment 15 Jonathan Lange 2011-10-14 04:36:10 UTC
(In reply to comment #14)
> (In reply to comment #13)
> > Created an attachment (id=52329) [details] [details]
> > dmesg w/ drm.debug=0x1
> > 
> > Here's w/ drm.debug=0x1. No 'pipe [AB] underrun' regex matches.
> To check the obvious as it is quite a short dmesg (compared to what I was
> expecting, very few ioctls i.e. very few drawing commands), did you observe
> flicker within that time?

Yes, I did. Three separate incidents. Perhaps I mistyped the drm.debug kernel boot option? Also, to be clear, I'm uploading /var/log/dmesg. Do let me know if I should be doing something else.

Btw, I'm very grateful for how responsive you've been. Thanks.
Comment 16 Chris Wilson 2011-10-14 04:52:59 UTC
Ah, iirc /var/log/dmesg is the dmesg from boot and not the latest message. To get the current dmesg, just type 'dmesg' (so dmesg > dmesg.txt and attach).
Comment 17 Jonathan Lange 2011-10-30 08:27:09 UTC
Created attachment 52918 [details]
dmesg w/ drm.debug=0xe for real

This is a dmesg snapshot taken shortly after reproducing the bug with drm.debug=0xe.
Comment 18 Jonathan Lange 2011-10-30 08:30:11 UTC
Created attachment 52919 [details]
dmesg snapshot taken w/ drm.debug=0x1 after reproducing

This time with drm.debug=0x1.
Comment 19 Jonathan Lange 2011-11-18 07:58:21 UTC
FWIW, this issue still occurs regularly for me.
Comment 20 Jonathan Lange 2012-01-27 08:54:53 UTC
Demonstrably a hardware issue.  Same jitters have occurred on console and before OS boot.

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.