[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


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





------- 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:
http://gitweb.freedesktop.org/?p=mesa/drm.git;a=commit;h=c06808fb6521822238bca4574758f30246b71c2d

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
continuously 
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
suboptimal.
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