Blank screen with only mouse pointer after 7.10 radeon driver update; display does not switch to tty7 upon lightdm start; Xorg.0.log quickly grows
Submitted by jam..@..il.com
Assigned to xf86-video-ati maintainers
Link to original bug (#105217)
Description
Created attachment 137544
Xorg.0.log
I get a blank screen with only mouse pointer upon boot, after the splash. This started after the mesa driver update on 2/15/18, which included xserver-xorg-video-radeon-hwe-16.04:amd64 1:7.10.0-116.04.1. (7.10 of the radeon driver) The display does not appear to switch to tty7 upon lightdm start.16.04.1
Xorg.0.log quickly grows and continues to grow.
I believe lightdm
is not starting Xorg
on the correct display, but, I don't know how to determine this from the logs.
Here is the command line lightdm
uses to launch Xorg
:
$ ps -ef | grep lightdm16.04.4 17.2.8-0ubuntu0
root 1261 1 0 18:23 ? 00:00:00 /usr/sbin/lightdm
root 1316 1261 6 18:23 tty7 00:00:03 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
root 1350 1261 0 18:23 ? 00:00:00 lightdm --session-child 12 15
*OCCURRENCE ON 2/15/18:*
I performed a normal upgrade on 2/15/18 through the software manager in Ubuntu 16.04LTS.
It upgraded the following libraries (/var/log/dpkg.log [pkg][old ver][new ver]
):
libegl1-mesa-dev:amd64 17.2.4-0ubuntu1
libwayland-egl1-mesa:amd64 17.2.4-0ubuntu116.04.4 17.2.8-ubuntu016.04.1
libwayland-egl1-mesa:i386 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libegl1-mesa:i386 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libegl1-mesa:amd64 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libgbm1:amd64 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libgbm1:i386 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libosmesa6:amd64 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libosmesa6:i386 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libgles2-mesa:amd64 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libgl1-mesa-glx:amd64 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libgl1-mesa-glx:i386 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libglapi-mesa:i386 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libglapi-mesa:amd64 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libgl1-mesa-dri:amd64 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libgl1-mesa-dri:i386 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
libxatracker2:amd64 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
linux-firmware:all 1.157.15 1.157.16
mesa-vdpau-drivers:i386 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
mesa-vdpau-drivers:amd64 17.2.4-0ubuntu116.04.4 17.2.8-0ubuntu016.04.1
xserver-xorg-video-radeon-hwe-16.04:amd64 1:7.9.0-0ubuntu116.04.1 16.04.1
1:7.10.0-1
xserver-xorg-video-ati-hwe-16.04:amd64 1:7.9.0-0ubuntu116.04.1 1:7.10.0-116.04.1
I should note, this is not the compiz/unity update package list. It is the mesa drivers.
Upon reboot, I started getting a blank screen with only a mouse pointer when the display manager started.
I press <kbd>
CTRL</kbd>
+<kbd>
ALT</kbd>
+<kbd>
F1</kbd>
to go into console, and I can find the following in the Xorg.0.log
:
[ 4800.851] (WW) RADEON(0): flip queue failed: Invalid argument
[ 4800.851] (WW) RADEON(0): Page flip failed: Invalid argument
These warning messages are constantly streaming into the log file, and it keeps growing. This wasn't present before the library update. I have provided a log file.
Video h/w on my laptop:
*-display
description: VGA compatible controller
product: RV516/M64-S [Mobility Radeon X2300]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:01:00.0
version: 00
width: 32 bits
clock: 33MHz
capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
configuration: driver=radeon latency=0
resources: irq:16 memory:d0000000-d3ffffff ioport:4000(size=256) memory:d8300000-d830ffff memory:c0000-dffff
1st lines of modinfo output:
filename: /lib/modules/4.13.0-26-generic/kernel/drivers/gpu/drm/radeon/radeon.ko
license: GPL and additional rights
description: ATI Radeon
*UPDATE 2/16/18:*
I appear to be booting to the wrong VT display. All of the symptoms above are true; however, if I perform a <kbd>
CTRL</kbd>
+<kbd>
ALT</kbd>
+<kbd>
F1</kbd>
(up to <kbd>
F6</kbd>
) at startup and then immediately perform a <kbd>
CTRL</kbd>
+<kbd>
ALT</kbd>
+<kbd>
F7</kbd>
, which switches the VT, I go to my normal desktop as if it had booted correctly. <kbd>
CTRL</kbd>
+<kbd>
ALT</kbd>
+<kbd>
F7</kbd>
without first going to console does not do anything. Lightdm seems to start Xorg on the wrong display. I tried a vt.handoff=7 on the linux kernel command line, and this did not help.
Here is the output of w
immediately after pressing <kbd>
CTRL</kbd>
+<kbd>
ALT</kbd>
+<kbd>
F7</kbd>
and going to the normal desktop:
09:38:01 up 44 min, 1 user, load average: 0.60, 0.67, 0.82
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 tty7 :0 08:53 44:14 6:16 0.29s /sbin/upstart -
This display listing appears normal.
I should note that compiz and unity still seem to function. The desktop is fully available and already loaded when I switch to tty7, but its just blank with a mouse cursor without switching the VT.
*UPDATE 2/19/18:*
I don't believe this to be a duplicate of the compiz/unity issue. The issue I observed resulted from the mesa driver update on the morning of 2/15/18. The compiz/unity update has yet to be applied to my system. In fact, there is one other post that looks to be the same issue as I am seeing, it is: https://askubuntu.com/questions/1006264/var-log-xorg-0-log-file-growing-fast
I think something is hosed with the 7.10 radeon driver in mesa 17.2.8, but I can't find the 17.2.4 pkgs to roll back and test the theory. The 17.2.4 was pulled from updates and proposed lines. I'm hesitant to rollback to 11.2.
The warning string in the Xorg.0.log, "flip queue failed", is found in the following driver:
/usr/lib/xorg/modules/drivers/radeon_drv.so
found in package: xserver-xorg-video-radeon-hwe-16.04
This module is loaded in Xorg on my machine. I downloaded the source and looked through the code.
Specifically, the source file:
./src/drmmode_display.c: xf86DrvMsg(scrn->scrnIndex, X_WARNING, "flip queue failed: %s\n",
Line 3093 in the source code of drmmode_display.c
:
flip_error:
xf86DrvMsg(scrn->scrnIndex, X_WARNING, "flip queue failed: %s\n",
strerror(errno));
error:
if (drm_queue_seq)
radeon_drm_abort_entry(drm_queue_seq);
else if (crtc)
drmmode_flip_abort(crtc, flipdata);
else {
abort(NULL, data);
drmmode_fb_reference(pRADEONEnt->fd, &flipdata->fb, NULL);
free(flipdata);
}
xf86DrvMsg(scrn->scrnIndex, X_WARNING, "Page flip failed: %s\n",
strerror(errno));
Okay, a little code inspection leads to one of these three function calls failing, first at line 3062:
if (crtc == ref_crtc) {
if (drmmode_page_flip_target_absolute(pRADEONEnt,
drmmode_crtc,
fb->handle,
flip_flags,
drm_queue_seq,
target_msc) != 0)
goto flip_error;
} else {
if (drmmode_page_flip_target_relative(pRADEONEnt,
drmmode_crtc,
fb->handle,
flip_flags,
drm_queue_seq, 0) != 0)
goto flip_error;
}
Then at Line 3039 in the source can also cause the message:
if (flip_sync == FLIP_ASYNC) {
if (!drmmode_wait_vblank(crtc,
DRM_VBLANK_RELATIVE |
DRM_VBLANK_EVENT,
0, drm_queue_seq,
NULL, NULL))
goto flip_error;
goto next;
}
Attachment 137544, "Xorg.0.log":
Xorg.0.log