Bug 17799

Summary: 855GM dri problem after "Initialize hardware status page at device load..." change on drm-next
Product: DRI Reporter: Herton Ronaldo Krzesinski <herton>
Component: DRM/IntelAssignee: Chris Wilson <chris>
Status: CLOSED WORKSFORME QA Contact:
Severity: normal    
Priority: medium CC: jbarnes, keithp
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Herton Ronaldo Krzesinski 2008-09-26 13:04:14 UTC
When testing some commits from current drm-next branch from git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git I found a regression introduced on a machine with 855GM chipset, that I nailed down to the commit titled "i915: Initialize hardware status page at device load when possible.".

To reproduce, you must install kde 4.1 and enable its gfx effects. With gfx effects enabled you are not able to login into kde after a boot without switching to vt (when switching to vt and back to X before doing login I couldn't reproduce).

I did some basic debugging (attaching gdb) and I found that X gets stuck waiting for something from drm perhaps, may be this can help:

(gdb) n
0xffffe424 in __kernel_vsyscall ()
(gdb) n
Single stepping until exit from function __kernel_vsyscall,
which has no line number information.
0xffffe424 in __kernel_vsyscall ()
(gdb) n
Single stepping until exit from function __kernel_vsyscall,
which has no line number information.
SmartScheduleTimer (sig=14) at utils.c:1559
1559    {
(gdb) n
0x0806efcf in __i686.get_pc_thunk.cx ()
Current language:  auto; currently asm
(gdb) n
Single stepping until exit from function __i686.get_pc_thunk.cx,
which has no line number information.
SmartScheduleTimer (sig=14) at utils.c:1560
1560        SmartScheduleTime += SmartScheduleInterval;
Current language:  auto; currently c
(gdb) n
1561    }
(gdb) n
0xffffe424 in __kernel_vsyscall ()

utils.c is from xorg-server-1.4.2/os/utils.c
I get this backtrace while inside SmartScheduleTimer:

(gdb) bt
#0  SmartScheduleTimer (sig=14) at utils.c:1559
#1  <signal handler called>
#2  0xffffe424 in __kernel_vsyscall ()
#3  0xb7d3f5f9 in ioctl () from /lib/i686/libc.so.6
#4  0xb7abd24c in drmCommandWrite (fd=10, drmCommandIndex=5, data=0xa281bd0, size=170400720) at xf86drm.c:2307
#5  0xaf709294 in intelWaitIrq (intel=0xa26eda0, seq=3) at intel_ioctl.c:89
#6  0xaf70945f in intelRefillBatchLocked (intel=0xa26eda0, allow_unlock=0 '\0') at intel_ioctl.c:135
#7  0xaf709ac0 in intelFlushBatchLocked (intel=0xa26eda0, ignore_cliprects=0 '\0', refill=1 '\001', allow_unlock=252 '�')    at intel_ioctl.c:291
#8  0xaf709b15 in intelFlushBatch (intel=0xa26eda0, refill=252 '�') at intel_ioctl.c:297
#9  0xaf709ee7 in intelWaitForIdle (intel=0xa26eda0) at intel_ioctl.c:313
#10 0xaf712b70 in intelUploadTexImages (intel=0xa26eda0, t=0xa55f868, face=0) at intel_tex.c:812
#11 0xaf7020d1 in i830SetTexImages (i830=0xa26eda0, tObj=0xa55f698) at i830_texstate.c:251
#12 0xaf702165 in enable_tex_common (ctx=0x40046445, unit=0) at i830_texstate.c:311
#13 0xaf702405 in i830UpdateTexUnit (ctx=0xa26eda0, unit=0) at i830_texstate.c:448
#14 0xaf702614 in i830UpdateTextureState (intel=0xa26eda0) at i830_texstate.c:471
#15 0xaf71fc7b in intelRunPipeline (ctx=0xa26eda0) at intel_tris.c:767
#16 0xaf7adb96 in _tnl_draw_prims (ctx=0xa26eda0, arrays=0xa2a9480, prim=0xa2a7fdc, nr_prims=1, ib=0x0, min_index=0,    max_index=3) at tnl/t_draw.c:402
#17 0xaf7a6c52 in vbo_exec_vtx_flush (exec=0xa2a7eb8) at vbo/vbo_exec_draw.c:215
#18 0xaf7a23b1 in vbo_exec_FlushVertices (ctx=0xa26eda0, flags=1) at vbo/vbo_exec_api.c:700
#19 0xaf837ebc in _mesa_PopAttrib () at main/attrib.c:859
#20 0xb7af5afe in ?? () from /usr/lib/xorg/modules/extensions//libglx.so
#21 0xb7aed6b8 in DoRender () from /usr/lib/xorg/modules/extensions//libglx.so
#22 0xb7aed7eb in ?? () from /usr/lib/xorg/modules/extensions//libglx.so
#23 0xb7af1e8e in ?? () from /usr/lib/xorg/modules/extensions//libglx.so
#24 0x08156267 in XaceCatchExtProc (client=0x9d8f808) at xace.c:299
#25 0x08089743 in Dispatch () at dispatch.c:531
#26 0x0806ec9d in main (argc=-1080974348, argv=0x823b02c, envp=Cannot access memory at address 0x4004644d
) at main.c:452
Comment 1 Matt Turner 2010-12-02 20:12:03 UTC
Closing due to inactivity. Reopen if this is still a problem. (You probably didn't get any feedback because you filed it in the wrong section.)

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.