Package: libdrm2 Version: 2.4.9-1 Severity: normal Hi,
I saw this sometimes on KDE 3, now it happens many times a day on KDE 4 from unstable, so I spent some time figuring out what actually happens (backtrace attached). I think I've also seen it both on an Intel graphics card and a Radeon (with the libre driver), although lately I've only been using the Intel card, and this backtrace is from that setup. The symptoms: X hangs in such a way that only the mouse pointer moves, but nothing else ever happens. X does not respond to keyboard events (caps lock led does not toggle, ctrl-alt-backspace does not zap server). Even changing to a different vt with ctrl-alt-F1 does not work. The only way out seems to be to kill the X server with the magic sysrq SAK (alt-sysrq-k) command or to kill X from a remote console. Even this usually leaves the screen in a broken state. There is nothing special in dmesg. Killing X clients while the server is hung has no effect. Nothing changes on the screen, except the mouse pointer can be moved. The details: I don't seem to have a script of that now here, but I seem to remember that the innermost function that never returns is drmIoctl(), but at least drmCommandWrite() never returns. I don't know anything about the functions, but my guess about the cause is the size parameter of drmCommandWrite() that seems to me to be totally bogus (18446744073709551615). See the backtraces (short and full) below. Please mention if there's something more I can do to help debug this, or if you think I should rather report this upstream. Sami ------------------------------------------------------------ GNU gdb 6.8-debian Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu"... Attaching to program: /usr/bin/Xorg, process 5152 Reading symbols from /usr/lib/libpciaccess.so.0...done. Loaded symbols for /usr/lib/libpciaccess.so.0 Reading symbols from /lib/libdl.so.2...Reading symbols from /usr/lib/debug/lib/libdl-2.9.so...done. done. Loaded symbols for /lib/libdl.so.2 Reading symbols from /lib/libpthread.so.0...Reading symbols from /usr/lib/debug/lib/libpthread-2.9.so...done. [Thread debugging using libthread_db enabled] [New Thread 0x7f4269e5b790 (LWP 5152)] done. Loaded symbols for /lib/libpthread.so.0 Reading symbols from /usr/lib/libXfont.so.1...done. Loaded symbols for /usr/lib/libXfont.so.1 Reading symbols from /usr/lib/libXau.so.6...done. Loaded symbols for /usr/lib/libXau.so.6 Reading symbols from /usr/lib/libfontenc.so.1...done. Loaded symbols for /usr/lib/libfontenc.so.1 Reading symbols from /usr/lib/libpixman-1.so.0...done. Loaded symbols for /usr/lib/libpixman-1.so.0 Reading symbols from /usr/lib/libhal.so.1...done. Loaded symbols for /usr/lib/libhal.so.1 Reading symbols from /usr/lib/libdbus-1.so.3...done. Loaded symbols for /usr/lib/libdbus-1.so.3 Reading symbols from /usr/lib/libXdmcp.so.6...done. Loaded symbols for /usr/lib/libXdmcp.so.6 Reading symbols from /usr/lib/libgcrypt.so.11...done. Loaded symbols for /usr/lib/libgcrypt.so.11 Reading symbols from /lib/libaudit.so.0...done. Loaded symbols for /lib/libaudit.so.0 Reading symbols from /lib/libselinux.so.1...done. Loaded symbols for /lib/libselinux.so.1 Reading symbols from /lib/libm.so.6...Reading symbols from /usr/lib/debug/lib/libm-2.9.so...done. done. Loaded symbols for /lib/libm.so.6 Reading symbols from /lib/librt.so.1...Reading symbols from /usr/lib/debug/lib/librt-2.9.so...done. done. Loaded symbols for /lib/librt.so.1 Reading symbols from /lib/libc.so.6...Reading symbols from /usr/lib/debug/lib/libc-2.9.so...done. done. Loaded symbols for /lib/libc.so.6 Reading symbols from /usr/lib/libz.so.1...done. Loaded symbols for /usr/lib/libz.so.1 Reading symbols from /lib/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug/lib/ld-2.9.so...done. done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /usr/lib/libfreetype.so.6...done. Loaded symbols for /usr/lib/libfreetype.so.6 Reading symbols from /usr/lib/libsmbios.so.2...done. Loaded symbols for /usr/lib/libsmbios.so.2 Reading symbols from /usr/lib/libgpg-error.so.0...done. Loaded symbols for /usr/lib/libgpg-error.so.0 Reading symbols from /usr/lib/libstdc++.so.6...done. Loaded symbols for /usr/lib/libstdc++.so.6 Reading symbols from /lib/libgcc_s.so.1...done. Loaded symbols for /lib/libgcc_s.so.1 Reading symbols from /usr/lib/xorg/modules/extensions/libextmod.so...Reading symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/libextmod.so...done. done. Loaded symbols for /usr/lib/xorg/modules/extensions//libextmod.so Reading symbols from /usr/lib/xorg/modules/extensions/libdbe.so...Reading symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/libdbe.so...done. done. Loaded symbols for /usr/lib/xorg/modules/extensions//libdbe.so Reading symbols from /usr/lib/xorg/modules/extensions/libglx.so...Reading symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/libglx.so...done. done. Loaded symbols for /usr/lib/xorg/modules/extensions//libglx.so Reading symbols from /usr/lib/xorg/modules/extensions/librecord.so...Reading symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/librecord.so...done. done. Loaded symbols for /usr/lib/xorg/modules/extensions//librecord.so Reading symbols from /usr/lib/xorg/modules/extensions/libdri.so...Reading symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/libdri.so...done. done. Loaded symbols for /usr/lib/xorg/modules/extensions//libdri.so Reading symbols from /usr/lib/libdrm.so.2...Reading symbols from /usr/lib/debug/usr/lib/libdrm.so.2.4.0...done. done. Loaded symbols for /usr/lib/libdrm.so.2 Reading symbols from /usr/lib/xorg/modules/extensions/libdri2.so...Reading symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/libdri2.so...done. done. Loaded symbols for /usr/lib/xorg/modules/extensions//libdri2.so Reading symbols from /usr/lib/xorg/modules/drivers/intel_drv.so...Reading symbols from /usr/lib/debug/usr/lib/xorg/modules/drivers/intel_drv.so...done. done. Loaded symbols for /usr/lib/xorg/modules/drivers//intel_drv.so Reading symbols from /usr/lib/libdrm_intel.so.1...done. Loaded symbols for /usr/lib/libdrm_intel.so.1 Reading symbols from /usr/lib/xorg/modules/input/synaptics_drv.so...done. Loaded symbols for /usr/lib/xorg/modules/input//synaptics_drv.so Reading symbols from /usr/lib/xorg/modules/input/kbd_drv.so...done. Loaded symbols for /usr/lib/xorg/modules/input//kbd_drv.so Reading symbols from /usr/lib/xorg/modules/input/mouse_drv.so...done. Loaded symbols for /usr/lib/xorg/modules/input//mouse_drv.so Reading symbols from /usr/lib/xorg/modules/libvgahw.so...Reading symbols from /usr/lib/debug/usr/lib/xorg/modules/libvgahw.so...done. done. Loaded symbols for /usr/lib/xorg/modules//libvgahw.so Reading symbols from /usr/lib/xorg/modules/libfb.so...Reading symbols from /usr/lib/debug/usr/lib/xorg/modules/libfb.so...done. done. Loaded symbols for /usr/lib/xorg/modules//libfb.so Reading symbols from /usr/lib/xorg/modules/libexa.so...Reading symbols from /usr/lib/debug/usr/lib/xorg/modules/libexa.so...done. done. Loaded symbols for /usr/lib/xorg/modules//libexa.so Reading symbols from /usr/lib/dri/i965_dri.so...done. Loaded symbols for /usr/lib/dri/i965_dri.so Reading symbols from /usr/lib/libexpat.so.1...done. Loaded symbols for /usr/lib/libexpat.so.1 0x00007f42679ae0b7 in ioctl () from /lib/libc.so.6 (gdb) bt #0 0x00007f42679ae0b7 in ioctl () from /lib/libc.so.6 #1 0x00007f4265ddb623 in drmIoctl (fd=11, request=1074029637, arg=0x7fff71e90cb0) at ../../libdrm/xf86drm.c:187 #2 0x00007f4265ddb8ab in drmCommandWrite (fd=11, drmCommandIndex=<value optimized out>, data=0x7fff71e90cb0, size=18446744073709551615) at ../../libdrm/xf86drm.c:2371 #3 0x00007f42659487d8 in I830Sync (pScrn=0x81adc0) at ../../src/i830_accel.c:212 #4 0x00007f4264acb4ec in exaWaitSync (pScreen=0x86abb0) at ../../exa/exa.c:1060 #5 0x00007f4264acc6e1 in ExaDoPrepareAccess (pDrawable=0x8857640, index=0) at ../../exa/exa.c:509 #6 0x00007f4264ad13d9 in exaCopyDirty (migrate=0x7fff71e90fe0, pValidDst=0x831d9a0, pValidSrc=<value optimized out>, transfer=0, fallback_src=0x8857680 "\207�������\207", fallback_dst=0x7f4263fc3a40 '\210' <repeats 200 times>..., fallback_srcpitch=12, fallback_dstpitch=64, fallback_index=0, sync=0x7f4264acb500 <exaMarkSync>) at ../../exa/exa_migration.c:218 #7 0x00007f4264ad18dd in exaDoMoveInPixmap (migrate=0x7fff71e90fe0) at ../../exa/exa_migration.c:274 #8 0x00007f4264ad20cf in exaDoMigration (pixmaps=0x7fff71e90fb0, npixmaps=3, can_accel=1) at ../../exa/exa_migration.c:683 #9 0x00007f4264ad3282 in exaTryDriverComposite (op=3 '\003', pSrc=0x723f010, pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, ySrc=101, xMask=<value optimized out>, yMask=<value optimized out>, xDst=<value optimized out>, yDst=<value optimized out>, width=<value optimized out>, height=<value optimized out>) at ../../exa/exa_render.c:640 #10 0x00007f4264ad3cbf in exaComposite (op=3 '\003', pSrc=0x723f010, pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, ySrc=101, xMask=0, yMask=0, xDst=1262, yDst=101, width=9, height=5) at ../../exa/exa_render.c:935 #11 0x0000000000535818 in damageComposite (op=11 '\v', pSrc=0x723f010, pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, ySrc=101, xMask=-4, yMask=<value optimized out>, xDst=<value optimized out>, yDst=<value optimized out>, width=<value optimized out>, height=<value optimized out>) at ../../../miext/damage/damage.c:643 #12 0x00007f4264ad2f4a in exaTrapezoids (op=11 '\v', pSrc=0x723f010, pDst=0x7da03c0, maskFormat=0x86ef98, xSrc=1262, ySrc=101, ntrap=0, traps=0x7efb520) at ../../exa/exa_render.c:1083 #13 0x0000000000530f3d in ProcRenderTrapezoids (client=0x4598310) at ../../render/render.c:782 #14 0x000000000044d274 in Dispatch () at ../../dix/dispatch.c:437 #15 0x000000000043316d in main (argc=8, argv=0x7fff71e91548, envp=<value optimized out>) at ../../dix/main.c:397 (gdb) bt full #0 0x00007f42679ae0b7 in ioctl () from /lib/libc.so.6 No symbol table info available. #1 0x00007f4265ddb623 in drmIoctl (fd=11, request=1074029637, arg=0x7fff71e90cb0) at ../../libdrm/xf86drm.c:187 ret = -1 #2 0x00007f4265ddb8ab in drmCommandWrite (fd=11, drmCommandIndex=<value optimized out>, data=0x7fff71e90cb0, size=18446744073709551615) at ../../libdrm/xf86drm.c:2371 No locals. #3 0x00007f42659487d8 in I830Sync (pScrn=0x81adc0) at ../../src/i830_accel.c:212 emit = {irq_seq = 0x7fff71e90cb0} wait = {irq_seq = 152042} ret = -4 pI830 = (I830Ptr) 0x81cf10 #4 0x00007f4264acb4ec in exaWaitSync (pScreen=0x86abb0) at ../../exa/exa.c:1060 No locals. #5 0x00007f4264acc6e1 in ExaDoPrepareAccess (pDrawable=0x8857640, index=0) at ../../exa/exa.c:509 pExaScr = (ExaScreenPrivPtr) 0x8705f0 pPixmap = (PixmapPtr) 0x8857640 offscreen = 1 #6 0x00007f4264ad13d9 in exaCopyDirty (migrate=0x7fff71e90fe0, pValidDst=0x831d9a0, pValidSrc=<value optimized out>, transfer=0, fallback_src=0x8857680 "\207�������\207", fallback_dst=0x7f4263fc3a40 '\210' <repeats 200 times>..., fallback_srcpitch=12, fallback_dstpitch=64, fallback_index=0, sync=0x7f4264acb500 <exaMarkSync>) at ../../exa/exa_migration.c:218 pPixmap = (PixmapPtr) 0x8857640 pExaPixmap = (ExaPixmapPrivPtr) 0x831d950 damage = <value optimized out> CopyReg = {extents = {x1 = 0, y1 = 0, x2 = 9, y2 = 5}, data = 0x0} save_offscreen = 0 save_pitch = 12 pBox = (BoxPtr) 0x7fff71e90da0 nbox = 0 access_prepared = 0 need_sync = 0 __func__ = "exaCopyDirty" firsttime = 0 #7 0x00007f4264ad18dd in exaDoMoveInPixmap (migrate=0x7fff71e90fe0) at ../../exa/exa_migration.c:274 pPixmap = (PixmapPtr) 0x8857640 pScreen = (ScreenPtr) 0x86abb0 #8 0x00007f4264ad20cf in exaDoMigration (pixmaps=0x7fff71e90fb0, npixmaps=3, can_accel=1) at ../../exa/exa_migration.c:683 pExaScr = (ExaScreenPrivPtr) 0x8705f0 i = 3 j = <value optimized out> __func__ = "exaDoMigration" #9 0x00007f4264ad3282 in exaTryDriverComposite (op=3 '\003', pSrc=0x723f010, pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, ySrc=101, xMask=<value optimized out>, yMask=<value optimized out>, xDst=<value optimized out>, yDst=<value optimized out>, width=<value optimized out>, height=<value optimized out>) at ../../exa/exa_render.c:640 region = {extents = {x1 = 1262, y1 = 101, x2 = 1271, y2 = 106}, data = 0x0} pbox = <value optimized out> ---Type <return> to continue, or q <return> to quit--- nbox = <value optimized out> src_off_x = <value optimized out> src_off_y = <value optimized out> mask_off_x = <value optimized out> mask_off_y = <value optimized out> dst_off_x = 0 dst_off_y = 0 pSrcPix = (PixmapPtr) 0x76028d0 pMaskPix = (PixmapPtr) 0x8857640 pDstPix = (PixmapPtr) 0x88b9bd0 pMaskExaPix = <value optimized out> scratch = {drawable = {type = 4 '\004', class = 0 '\0', depth = 0 '\0', bitsPerPixel = 0 '\0', id = 50331648, x = 64, y = 0, width = 0, height = 0, pScreen = 0x0, serialNumber = 139923133609216}, devPrivates = 0x88b9bd0, refcnt = 1911099520, devKind = 32767, devPrivate = {ptr = 0x81adc0, val = 8498624, uval = 8498624, fptr = 0x81adc0}, screen_x = -17812, screen_y = 25772, usage_hint = 32578} pixmaps = {{as_dst = 1, as_src = 1, pPix = 0x88b9bd0, pReg = 0x0}, {as_dst = 0, as_src = 1, pPix = 0x76028d0, pReg = 0x0}, {as_dst = 0, as_src = 1, pPix = 0x8857640, pReg = 0x0}} #10 0x00007f4264ad3cbf in exaComposite (op=3 '\003', pSrc=0x723f010, pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, ySrc=101, xMask=0, yMask=0, xDst=1262, yDst=101, width=9, height=5) at ../../exa/exa_render.c:935 isSrcSolid = <value optimized out> pExaScr = (ExaScreenPrivPtr) 0x8705f0 ret = <value optimized out> saveMaskRepeat = 0 region = {extents = {x1 = 1262, y1 = 0, x2 = 0, y2 = 0}, data = 0x870960} #11 0x0000000000535818 in damageComposite (op=11 '\v', pSrc=0x723f010, pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, ySrc=101, xMask=-4, yMask=<value optimized out>, xDst=<value optimized out>, yDst=<value optimized out>, width=<value optimized out>, height=<value optimized out>) at ../../../miext/damage/damage.c:643 ps = (PictureScreenPtr) 0x86f770 pScrPriv = (DamageScrPrivPtr) 0x870960 #12 0x00007f4264ad2f4a in exaTrapezoids (op=11 '\v', pSrc=0x723f010, pDst=0x7da03c0, maskFormat=0x86ef98, xSrc=1262, ySrc=101, ntrap=0, traps=0x7efb520) at ../../exa/exa_render.c:1083 pPicture = <value optimized out> pScreen = <value optimized out> ps = (PictureScreenPtr) 0x86f770 bounds = {x1 = 1262, y1 = 101, x2 = 1271, y2 = 106} #13 0x0000000000530f3d in ProcRenderTrapezoids (client=0x4598310) at ../../render/render.c:782 pFormat = <value optimized out> #14 0x000000000044d274 in Dispatch () at ../../dix/dispatch.c:437 result = <value optimized out> client = (ClientPtr) 0x4598310 nready = 0 start_tick = 140840 #15 0x000000000043316d in main (argc=8, argv=0x7fff71e91548, envp=<value optimized out>) at ../../dix/main.c:397 i = 1 alwaysCheckForInput = {0, 1} (gdb) q The program is running. Quit anyway (and detach it)? (y or n) y Detaching from program: /usr/bin/Xorg, process 5152 ------------------------------------------------------------ -- System Information: Debian Release: squeeze/sid APT prefers oldstable APT policy: (500, 'oldstable'), (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.29.1-tuxonice (PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages libdrm2 depends on: ii libc6 2.9-7 GNU C Library: Shared libraries libdrm2 recommends no packages. libdrm2 suggests no packages. -- no debconf information -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org