[Bug 12902] VBlank related server hang in indirect rendering mode

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Nov 4 16:29:43 PST 2007


------- Comment #7 from mathieu.berard at crans.org  2007-11-04 16:35 PST -------
(In reply to comment #6)
I think that this commit is also very interesting:

As it enforce a correct timeout when a signal is received for some ioctls. 
I think this is another aspect of the hang I observed: if the X server
receive SIGIO while sleeping in drmWaitVBlank then it may spin in the 
"while (ret && errno == EINTR)" loop forever. 
In fact I have tried to hack drmWaitVBlank to incorporate the same kind of fix 
as for the mentioned patch, and it successfully prevented the X server hang.
(I can provide a patch if desired)

As a sidenote, that modification add at least 2 calls of gettimeofday for each
ioctls, I don't know if those are considered hotpaths but that might be
I think that those can be avoided by handling this issue in the kernel: just
put the task in a uninterruptible sleep state, for exemple by creating an
uninterruptible version of DRM_WAIT_FOR and we can forgot this signal issue.
That may not be valid/possile for all the ioctls, but I think that can work at
leat for drmWaitVBlank.

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

More information about the xorg-driver-ati mailing list