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