[PATCH] linux: Retry VT ioctls while errno == EINTR

Dave Airlie airlied at gmail.com
Thu Apr 7 13:21:08 PDT 2011


On Fri, Apr 8, 2011 at 5:25 AM, Aaron Plattner <aplattner at nvidia.com> wrote:
> When the smart scheduler is enabled, the VT ioctls (particularly
> VT_WAITACTIVE) can be interrupted by the smart scheduler's SIGALRMs.
> Previously, this caused the server to immediately continue on to
> ScreenInit, almost certainly causing a crash or failure because the X
> server that owned the VT hadn't finished cleaning up.  As of commit
> 7ee965a300c9eddcc1acacf9414cfe3e589222a8, it causes a FatalError
> instead.
>
> Retrying the ioctl as long as it fails with errno == EINTR fixes the
> problem and allows server regenerations to trigger VT switches that
> actually succeed.

It seems like a wrapper might be a good plan, this looks quite like
drmIoctl in libdrm.

Dave.


More information about the xorg-devel mailing list