http://bugs.freedesktop.org/show_bug.cgi?id=18967

           Summary: Xorg freeze after using xrandr, drm debug error.
           Product: DRI
           Version: XOrg CVS
          Platform: x86 (IA32)
        OS/Version: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: DRM modules
        AssignedTo: dri-devel@lists.sourceforge.net
        ReportedBy: [EMAIL PROTECTED]


I am getting a freeze when I attempt to use xrandr.
My equipment is a GM45 motherboard with VGA and two SDVO/TMDS displays.
"xrandr -q" works, but the server goes into an infinite loop.
This does not occur every time, but does most times this is done.
The build is as close as I can make it to the latest git checkouts.
The kernel is 2.6.28-rc7-pae, from the anholt/drm-intel-next archive.
The kernel version 2.6.28-rc4-pae, with the same user space, does not do this.
I have investigated the problem somewhat with gdb and loading (and recompiling)
the drm module with debugging enabled.

The variable master->lock.hw_lock is NULL in the kernel function drm_lock.

I get the following stack trace
when the loop is interrupted.

****************************************************************************
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb7c123e9 in ioctl () from /lib/libc.so.6
#2  0xb7a8034f in drmIoctl (fd=16, request=1074291754, arg=0xbfb211d8) at
xf86drm.c:183
#3  0xb7a81107 in drmGetLock (fd=16, context=1, flags=0) at xf86drm.c:1297
#4  0xb7a8d7d0 in DRILock (pScreen=0x830ef70, flags=0) at dri.c:2201
#5  0xb7a8a587 in DRIScreenInit (pScreen=0x830ef70, pDRIInfo=0x82f2b38,
pDRMFD=0x82620b8) at dri.c:525
#6  0xb7a4623e in I830DRIScreenInit (pScreen=0x830ef70) at i830_dri.c:631
#7  0xb7a0f805 in I830ScreenInit (scrnIndex=0, pScreen=0x830ef70, argc=8,
argv=0xbfb21574) at i830_driver.c:3106
#8  0x080699e9 in AddScreen (pfnInit=0xb7a0f63d <I830ScreenInit>, argc=8,
argv=0xbfb21574) at main.c:688
#9  0x080bc29e in InitOutput (pScreenInfo=0x824e160, argc=8, argv=0xbfb21574)
at xf86Init.c:1245
#10 0x08068d34 in main (argc=8, argv=0xbfb21574, envp=0xbfb21598) at main.c:309
****************************************************************************

When the kernel function drm_lock finds the variable
master->lock.hw_lock to be NULL, it returns EINTR, and this causes an infinite
loop invoking an ioctl in drmIoctl.

A nasty side bug is that the DRM_DEBUG line in drm_lock assumes 
master->lock.hw_lock is non-NULL, and causes an OOPS when debugging is enabled.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to