xv video freezes computer if display is rotated [GMA945]

Bug #219846 reported by schmolch
4
Affects Status Importance Assigned to Milestone
xserver-xorg-video-intel (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Using a Tablet-PC (lenovo X60T with Intel GMA945) i rotate the screen alot.

When i play a Video using XV while the screen is rotated the computer freezes.
The Display might turn white and the computer does not respond to anything anymore.

If i switch video to X11 in vlc that works fine.
Using XV in either vlc or totem results in a immediate freeze.

Im running Ubuntu Hardy Heron updated daily.

PS: Since upgrading to Hardy Heron the screen rotation after a resume from suspend works fine, thx alot for this improvement.

Revision history for this message
Bryce Harrington (bryce) wrote :

Hi, thanks but there isn't enough information to troubleshoot this problem. Please attach your Xorg.0.log from after one of these lockups, and collect a full backtrace. See http://wiki.ubuntu.com/X/Backtracing for directions.

Changed in xserver-xorg-video-intel:
status: New → Incomplete
Revision history for this message
schmolch (saschaheid) wrote :

I just got a second laptop that allowed me to do this Backtracing.
Never did it before so plz tell me if i did something wrong.

Sick machine:
boots up, i rotate the screen.

remote machine:
loggin into sick machine, starting gdb:
(gdb) attach 5432
Attaching to program: /usr/bin/Xorg, process 5432
.
.
.
(gdb) cont
Continuing.

sick machine:
i start playing a video with the display being rotated, totem is using xv.

Now the display shows a solid color but i can hear the sound of the video.
The color seems to be random, currently its all purple, last time it was all blue and i remember seeing all white.
Playing the video does not give any new output in gdb, it still shows:

(gdb) cont
Continuing.

Now i enter ctrl+c in gdb to abort Xorg (im not sure why ctrl+c in gdb aborts xorg on the sick machine).
The output of gdb is
Program received signal SIGINT, Interrupt.
[Switching to Thread 0xb7c8aa30 (LWP 5432)]
0xb7fa9410 in __kernel_vsyscall ()

but the video keeps playing for a couple of seconds until it stops.

The screen is still all purple.
Hitting ctrl+alt+backspace does not change that and i have to reboot the machine.

Revision history for this message
schmolch (saschaheid) wrote :

I forgot to look into Xorg.log before i rebooted so i do it again.

i log into sick machine and run
tail /var/log/Xorg.0.log

rotating the screen gives a'lot of output

playing a video without the screen rotated gives this output:
(II) intel(0): xf86BindGARTMemory: bind key 2 at 0x02454000 (pgoffset 9300)

i rotate the screen and play the video again.
(II) intel(0): xf86BindGARTMemory: bind key 3 at 0x029f8000 (pgoffset 10744)

The screen is all green now.
I kill Xorg remotely, the screen switches between all green and all black a few times.

I dont know if the Xorg.log output from killing Xorg is interesting to you but here it is:
Error in I830WaitLpRing(), timeout for 2 seconds
pgetbl_ctl: 0xbffc0001getbl_err: 0x0
ipeir: 0 iphdr: 1810000
LP ring tail: c350 head: c32c len: 1f801 start 0
eir: 0 esr: 0 emr: ffff
instdone: ffc0 instpm: 0
memmode: 306 instps: f0000
hwstam: ffff ier: 0 imr: ffff iir: 0
Ring at virtual 0xa785a000 head 0xc32c tail 0xc350 count 9
 0000c2ac: 00a7c6e1
 0000c2b0: 54300004
 0000c2b4: 03f01600
 0000c2b8: 00cc0190
 0000c2bc: 00e703cc
 0000c2c0: 00640000
 0000c2c4: 00eaeaea
 0000c2c8: 02000011
 0000c2cc: 00000000
 0000c2d0: 54300004
 0000c2d4: 03f01600
 0000c2d8: 00cc02d6
 0000c2dc: 023102e5
 0000c2e0: 00640000
 0000c2e4: 00eaeaea
 0000c2e8: 54300004
 0000c2ec: 03f01600
 0000c2f0: 00cc0190
 0000c2f4: 023102d6
 0000c2f8: 00640000
 0000c2fc: 00ffffff
 0000c300: 02000011
 0000c304: 00000000
 0000c308: 54300004
 0000c30c: 03f01600
 0000c310: 00670190
 0000c314: 023102d6
 0000c318: 00640000
 0000c31c: 00eaeaea
 0000c320: 02000011
 0000c324: 00000000
 0000c328: 01810000
 0000c32c: 00000000
Ring end
space: 131028 wanted 131064

Fatal server error:
lockup

Error in I830WaitLpRing(), timeout for 2 seconds
pgetbl_ctl: 0xbffc0001getbl_err: 0x0
ipeir: 0 iphdr: 1810000
LP ring tail: c358 head: c32c len: 1f801 start 0
eir: 0 esr: 0 emr: ffff
instdone: ffc0 instpm: 0
memmode: 306 instps: f0000
hwstam: ffff ier: 0 imr: ffff iir: 0
Ring at virtual 0xa785a000 head 0xc32c tail 0xc358 count 11
 0000c2ac: 00a7c6e1
 0000c2b0: 54300004
 0000c2b4: 03f01600
 0000c2b8: 00cc0190
 0000c2bc: 00e703cc
 0000c2c0: 00640000
 0000c2c4: 00eaeaea
 0000c2c8: 02000011
 0000c2cc: 00000000
 0000c2d0: 54300004
 0000c2d4: 03f01600
 0000c2d8: 00cc02d6
 0000c2dc: 023102e5
 0000c2e0: 00640000
 0000c2e4: 00eaeaea
 0000c2e8: 54300004
 0000c2ec: 03f01600
 0000c2f0: 00cc0190
 0000c2f4: 023102d6
 0000c2f8: 00640000
 0000c2fc: 00ffffff
 0000c300: 02000011
 0000c304: 00000000
 0000c308: 54300004
 0000c30c: 03f01600
 0000c310: 00670190
 0000c314: 023102d6
 0000c318: 00640000
 0000c31c: 00eaeaea
 0000c320: 02000011
 0000c324: 00000000
 0000c328: 01810000
 0000c32c: 00000000
Ring end
space: 131020 wanted 131064

FatalError re-entered, aborting
lockup

Revision history for this message
Bryce Harrington (bryce) wrote :

Good, you've got most of the process but looks like you missed the most important step - issuing the "backtrace full" command to gdb once it's locked up. Please reproduce the crash once again and do that command to get a backtrace.

Revision history for this message
schmolch (saschaheid) wrote :

sick machine:

playing video with screen rotated.
screen turns dark red, audio still playing.

remote machine:

aborting server with ctrl+c

Program received signal SIGINT, Interrupt.
[Switching to Thread 0xb7c76a30 (LWP 5423)]
0xb7f95410 in __kernel_vsyscall ()
(gdb)

audio keeps playing for a couple of seconds

(gdb) backtrace full

#0 0xb7f95410 in __kernel_vsyscall ()
No symbol table info available.
#1 0xb7de484d in select () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#2 0x081b2275 in WaitForSomething (pClientsReady=0xbfdf5df0)
    at ../../os/WaitFor.c:236
 i = <value optimized out>
 waittime = {tv_sec = 0, tv_usec = 512000}
 wt = (struct timeval *) 0xbfdf5db0
 timeout = <value optimized out>
 clientsReadable = {fds_bits = {0 <repeats 32 times>}}
 clientsWritable = {fds_bits = {0, 0, 259, 304, -1075880728, 1,
    -1075880604, -1210170648, -1075880604, 27, -1075880712, 136163204, 1, 32,
    -1075880696, 136039262, 27, -1075880604, 1, -1212132234, 138540840,
    136163204, -1075880664, 136034255, 151338640, -1075880604, 1, 136015388,
    150963448, -1075880572, -1075880568, 136013494}}
 curclient = <value optimized out>
 selecterr = 65668378
 nready = <value optimized out>
 devicesReadable = {fds_bits = {28311856, 16974128, 0, 28311856, 0,
    65667349, 35128602, 134814016, 136025225, 136163204, -1075880824,
    134798261, 0, 65667349, 85590552, 0, 65667349, 85590552, 0, -1212095872,
    259, 304, -1075880712, -1212144120, 138540840, 139564232, 136680056,
   151354080, 0, 0, 432, 304}}
 now = 21967069
 someReady = 0
#3 0x0808d69d in Dispatch () at ../../dix/dispatch.c:425
 result = <value optimized out>
 client = (ClientPtr) 0x841f728
 nready = -1
 start_tick = 697460
#4 0x0807471b in main (argc=10, argv=0xbfdf6324, envp=0x0)
    at ../../dix/main.c:452
 i = 1
 error = 136163204
 xauthfile = <value optimized out>
 alwaysCheckForInput = {0, 1}

Bryce Harrington (bryce)
Changed in xserver-xorg-video-intel:
importance: Undecided → High
status: Incomplete → Triaged
Revision history for this message
Bryce Harrington (bryce) wrote :

Closing, as per PS in description that it works with the released Hardy.

Changed in xserver-xorg-video-intel:
status: Triaged → Fix Released
Revision history for this message
Antti Kaihola (akaihola) wrote :

I have this problem in Hardy with all current updates. I posted my Xorg log to bug #225400, which might be a duplicate.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.