http://bugs.freedesktop.org/show_bug.cgi?id=12902
------- Comment #7 from [EMAIL PROTECTED] 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. _______________________________________________ xorg-driver-ati mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-driver-ati
