[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