[PATCH] xf86drm.c: add counter for ioctl restarting

Chris Wilson chris at chris-wilson.co.uk
Fri Apr 13 06:40:58 PDT 2012


On Fri, 13 Apr 2012 17:26:42 +0400, "Anton V. Boyarshinov" <boyarsh at altlinux.org> wrote:
> In some cases ioclt->alarm->ioctl loop can be infinite:
> ioctl(7, 0x40086482, 0xbfb62738)        = ? ERESTARTSYS (To be restarted)
> --- SIGALRM (Alarm clock) @ 0 (0) ---
> sigreturn()                             = ? (mask now [])
> ioctl(7, 0x40086482, 0xbfb62738)        = ? ERESTARTSYS (To be restarted)
> and forever.
> 
> It seems, that limiting ioctl restarting by some resonable number of trys
> is a dirty but working way to prevent Xorg lockups.

And you have audited all callpaths to make sure that they can handle
EINTR? Up until now it was part of the libdrm api that it did not return
EINTR...



More information about the dri-devel mailing list