hang in drmGetLock (was: Fix xserver build)

Michel Dänzer michel at tungstengraphics.com
Sat Oct 14 10:28:54 PDT 2006


On Sat, 2006-10-14 at 18:06 +0200, Edgar Toernig wrote:
> 
> [drm:drm_ioctl] pid=1938, cmd=0xc0086420, nr=0x20, dev 0xe200, auth=1
> [drm:drm_ctxbitmap_next] drm_ctxbitmap_next bit : 4
> [drm:drm_addctx] 4
> [drm:drm_ioctl] pid=1938, cmd=0x4008642a, nr=0x2a, dev 0xe200, auth=1
> [drm:drm_lock] 4 (pid 1938) requests lock (0x00000001), flags = 0x00000000
> [drm:drm_lock] 4 has a
> [drm:drm_ioctl] pid=1938, cmd=0x4008642a, nr=0x2a, dev 0xe200, auth=1
> [drm:drm_lock] 1 (pid 1938) requests lock (0x00000004), flags = 0x00000000
> [drm:drm_lock] 1 has lock
> [drm:drm_ioctl] pid=1938, cmd=0x4008642a, nr=0x2a, dev 0xe200, auth=1
> [drm:drm_lock] 4 (pid 1938) requests lock (0x00000001), flags = 0x00000000
> [drm:drm_lock] 4 has lock
> [...]
> 
> And then it goes on and on - get lock 1, get lock 4, ...

This is how AIGLX works currently; the X server creates an additional
DRM context for each indirect GLX context and takes the hardware lock
alternatively with those contexts and its own context (1). The '1/4 has
lock' lines show that the corresponding context succeeded in getting the
lock, so this output doesn't seem to indicate a problem per se.


> Btw, this on an a P4-HT SMP kernel in case it matters.

It shouldn't matter because the X server is single threaded, but it
might be worth trying with only one logical CPU just in case.


-- 
Earthling Michel Dänzer           |          http://tungstengraphics.com
Libre software enthusiast         |          Debian, X and DRI developer




More information about the xorg mailing list