Update: Squashes a couple commits to avoid potential hang if git bisecting. No other changes from v1. ---- When starting up (on Ubuntu), X can hit an error trying to set the version on the drm device. We believe this is a race with plymouth (or the kernel), since adding some delay to the boot results in a functioning session for affected users. So far we have not found a reliable way to reproduce the bug synthetically. It appears to affect users on fast booting hardware (e.g. SSDs) when using the Intel graphics driver. We have not root-caused the bug yet. Currently we suspect the actual breakage is underneath X (plymouth/lightdm/kernel), and are still experimenting. However, this patch does seem to improve things for users, so it or parts of it may be worth your consideration for inclusion in xserver. I'm including the patch broken down into easily pickable chunks. Note the final patch in the series is highly optional; it handles EAGAIN being passed from the ioctl - which looks impossible to happen in practice. https://bugs.launchpad.net/ubuntu/+source/libdrm/+bug/982889 Bryce Harrington (7): xfree86: (Cleanup) Close fd if drm interface 1.4 could not be set. xfree86: Track error code and add label for error handling. xfree86: Provide more details on failure xfree86: Keep trying to set interface on drm for 2 seconds. xfree86: Fix race condition failure opening drm. xfree86: Be verbose if waiting on opening the drm device xfree86: Also handle EAGAIN errors from drmSetInterfaceVersion(). hw/xfree86/os-support/linux/lnx_platform.c | 43 ++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 8 deletions(-) -- 1.7.9.5