01:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon HD 3400 Series I use openSUSE 11.1 which by default comes with 2.6.27.7 and X Server 1.5.2 (I didn't change kernel or X). Manually I installed: 1) xf86-video-radeonhd from git from r6xx-r7xx-support branch (0d6f45b70d9aa...) 2) libdrm.so.2.4.0 from git from r6xx-r7xx-support branch (fd3b361a540c4...) 3) drm.ko from git from r6xx-r7xx-support branch (fd3b361a540c4...) 4) radeon.ko from git from r6xx-r7xx-support branch (fd3b361a540c4...) I made tests using: Option "AccelMethod" "exa" Option "DRI" I can start plain X with "xterm" just fine. Using xterm I can start konsole and kcalc (KDE 3.5) without problem. I can even play some movie with mplayer using any: x11 and xv. The problem happens when I start SMplayer or "qnapi" (small Qt 3 app). What happens then? 1) Display hangs after second or two (nothing changes anymore) 2) I can move cursor using touchpad but it doesn't move smoothly 3) Switching to VT doesn't work 4) CTRL+ALT+DEL doesn't do anything 5) The only escape is SysRq I belive interesting part of Xorg.0.log is: > [mi] EQ overflowing. The server is probably stuck in an infinite loop. > [mi] mieqEnequeue: out-of-order valuator event; dropping.
Created attachment 22156 [details] Xorg.0.log after starting X with xterm only
Created attachment 22157 [details] Xorg.0.log with messages about loop. I started in X+xterm problematic SMplayer, waited a little, then used SysRq to reboot and fianlly after reboot copied /var/log/Xorg.0.log to safe place, which now I attach.
similar results for me after clicking though a few config screens in mythtv. Xorg process seems run away. root@vcr3:/home/jape# lspci -vv | grep HD 01:05.0 VGA compatible controller: ATI Technologies Inc Radeon HD 3200 Graphics (prog-if 00 [VGA controller]) root@vcr3:/home/jape# top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5976 root 20 0 421m 109m 14m R 111 2.9 13:23.48 Xorg root@vcr3:/home/jape# strace -p 5976 <snip> --- SIGALRM (Alarm clock) @ 0 (0) --- sigreturn() = ? (mask now []) ioctl(7, 0xc0286429, 0xbfad2d54) = -1 EBUSY (Device or resource busy) --- SIGALRM (Alarm clock) @ 0 (0) --- sigreturn() = ? (mask now []) ioctl(7, 0xc0286429, 0xbfad2d54) = -1 EBUSY (Device or resource busy) --- SIGALRM (Alarm clock) @ 0 (0) --- sigreturn() = ? (mask now []) ioctl(7, 0xc0286429, 0xbfad2d54) = -1 EBUSY (Device or resource busy) <snip> root@vcr3:/tmp/drm# git status # On branch r6xx-r7xx-support nothing to commit (working directory clean) root@vcr3:/tmp/drm# git show commit 240b6ab7c7b244b5532d4ca8550954c6377815b9 Author: Alex Deucher <alexdeucher@gmail.com> Date: Fri Jan 23 01:47:59 2009 -0500 <snip> qroot@vcr3:/tmp/xf86-video-radeonhd# git status # On branch r6xx-r7xx-support nothing to commit (working directory clean) root@vcr3:/tmp/xf86-video-radeonhd# git show commit 1fe819d7d42ca8f4f4be22e4505f14f0ec28106b Author: Alex Deucher <alexdeucher@gmail.com> Date: Fri Jan 23 17:43:57 2009 -0500 <snip> root@vcr3:/tmp/xf86-video-radeonhd# dmesg | grep drm [ 38.478284] [drm] Initialized drm 1.1.0 20060810 [ 38.561757] [drm] Initialized radeon 1.29.0 20080613 on minor 0 [ 42.872282] [drm] Setting GART location based on new memory map [ 42.888171] [drm] Loading RS780 CP Microcode [ 42.889074] [drm] Loading RS780 PFP Microcode [ 42.904218] [drm] Resetting GPU [ 42.904275] [drm] writeback test succeeded in 1 usecs root@vcr3:/tmp/xf86-video-radeonhd# xorg info: X.Org X Server 1.4.0.90 Release Date: 5 September 2007 X Protocol Version 11, Revision 0 Build Operating System: Linux Ubuntu (xorg-server 2:1.4.1~git20080131-1ubuntu9.2)
I made little debugging. Normally on plain X R600PrepareSolid is called from time to time and it works fine. When I start SMplayer R600PrepareSolid is also called but in never returns. R600PrepareSolid sub-calls RHDDRMCPBuffer and that RHDDRMCPBuffer lockups in "for" loop. This "for" loop starts counting from 0 to 2000000 and every drmDMA() call takes 0.1 sec. As the result system lockups. Unfortunately I have no idea why ioctl used in drmDMA() takes that 0.1 sec and why RHDDRMCPBuffer can't find ret==0 in few hundreds of calls.
Created attachment 22270 [details] debugging patch I used for xf86-video-radeonhd
Created attachment 22271 [details] debugging patch I used for drm
Created attachment 22272 [details] Xorg.0.log with debugging patches applied
I tried Option "EXANoComposite" "true" and it was respected fine: > (**) RADEONHD(0): EXA: Disabling Composite operation (RENDER acceleration) but didn't help. The only difference comparing to my patched system is that I got a few > [mi] EQ overflowing. The server is probably stuck in an infinite loop. > [mi] mieqEnequeue: out-of-order valuator event; dropping. with disabled Composite. Btw. reassigning as libv and agd5f said on IRC.
Please try again with the latest code from the r6xx-r7xx-support branches of the drm and radeonhd.
With current git (radeonhd and drm module) it doesn't lockup anymore! Screen is one huge corruption but I doesn't hang my system :) Thanks.
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.