Bug 96737 - G98: DRM: GPU lockup ...
Summary: G98: DRM: GPU lockup ...
Status: RESOLVED WONTFIX
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-06-29 23:36 UTC by poma
Modified: 2016-10-21 19:20 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
nouveau log (4.31 KB, text/plain)
2016-06-29 23:36 UTC, poma
no flags Details
lightdm.log nouveau.accel KO (12.27 KB, text/plain)
2016-07-27 21:00 UTC, poma
no flags Details
lightdm.log nouveau.noaccel OK (12.34 KB, text/plain)
2016-07-27 21:01 UTC, poma
no flags Details
Test XRender compositing (13.77 KB, text/plain)
2016-08-19 13:25 UTC, poma
no flags Details

Description poma 2016-06-29 23:36:34 UTC
Created attachment 124789 [details]
nouveau log

LightDM - Light Display Manager -breaks- Nouveau - Linux kernel KMS driver

Breakage starts with:
https://bazaar.launchpad.net/~lightdm-team/lightdm/1.18/revision/2319
preventing the use of upgrades - lightdm 1.18.2, 1.19.1, 1.19.2, ...

Also tested with:
4.7.0-0.rc5.git1.1.fc25.x86_64
and
https://github.com/skeggsb/nouveau.git
commit bd320d9b0ee2f2443f7568e06bdc33a35cfb24ea
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Jun 27 16:49:24 2016 +1000
...

How to reproduce:
Re-log
or
Swith User, afterwards Re-log
via Xfce session manager
Comment 1 poma 2016-06-29 23:44:19 UTC
s/Swith User/Switch User/
Comment 2 poma 2016-06-29 23:57:56 UTC
For comparison,
with qxl.ko (QEMU) and vboxvideo.ko (VirtualBox),
no problem whatsoever.
Comment 3 poma 2016-07-01 08:34:26 UTC
With mesa-12.0.0-rc4 nouveau is more robust - no disp: ERROR

However, the original problem is still there,
nouveau breaks overall Login/SwitchToGreeter/SwitchToUser stanza,
shuffles sessions/VTNrs
Comment 4 poma 2016-07-02 14:42:24 UTC
Test compilation:
http://goo.gl/Gm4ffO
iso/


How to test:
0. Boot System
1. Logi In
2. Switch User
3. Unlock
4. Log Out
5. Log In ?
Comment 5 poma 2016-07-12 09:59:17 UTC
VT switching - with disabled acceleration, works


/var/log/Xorg.0.log
Kernel command line: ... nouveau.noaccel=1
(EE) NOUVEAU(0): Error initialising acceleration.  Falling back to NoAccel
(**) NOUVEAU(0): [COPY] acceleration disabled

glxinfo:
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.8, 128 bits)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/etc/X11/xorg.conf.d/nouveau.conf
Section "Device"
        Identifier "video0"
        Driver "nouveau"
        Option "NoAccel" "on"
EndSection

/var/log/Xorg.0.log
(**) NOUVEAU(0): Option "NoAccel" "on"
(**) NOUVEAU(0): Acceleration disabled
(**) NOUVEAU(0): [COPY] acceleration disabled

glxinfo:
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.8, 128 bits)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/etc/X11/xorg.conf.d/nouveau.conf
Section "Device"
        Identifier "video0"
        Driver "nouveau"
        Option "AccelMethod" "none"
EndSection

/var/log/Xorg.0.log
(**) NOUVEAU(0): Option "AccelMethod" "none"
(**) NOUVEAU(0): [COPY] acceleration disabled

glxinfo:
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.8, 128 bits)
Comment 6 poma 2016-07-12 10:03:33 UTC
What in acceleration code can (as is) brake proper VT switching?
Comment 7 poma 2016-07-12 18:04:24 UTC
Also, the LightDM thread is here:
https://lists.freedesktop.org/archives/lightdm/2016-July/001000.html
Comment 8 poma 2016-07-15 17:14:37 UTC
w/ modeset sameo

/etc/X11/xorg.conf.d/modeset.conf
Section "Device"
        Identifier "video0"
        Driver "modesetting"
        Option "AccelMethod" "none"
EndSection

/var/log/Xorg.0.log
(**) modeset(0): Option "AccelMethod" "none"

glxinfo:
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.8, 128 bits)


What in Acceleration brakes VT switching?
Comment 9 poma 2016-07-27 20:48:35 UTC
Of course, the same with glx disabled

/etc/X11/xorg.conf.d/glx.conf
Section "Module"
        Disable "glx"
EndSection

/var/log/Xorg.0.log
(WW) "glx" will not be loaded unless you've specified it to be loaded elsewhere.
(II) "glx" will be loaded even though the default is to disable it.
(==) NOUVEAU(0): GLX sync to VBlank enabled.

xfwm4-WARNING **: GLX extension missing, GLX support disabled.
Comment 10 poma 2016-07-27 20:57:45 UTC
However, this is not particular to nouveau.ko.
Also tested with AMD radeon.ko and Intel i915.ko - the result is the same.
Comment 11 poma 2016-07-27 21:00:26 UTC
Created attachment 125354 [details]
lightdm.log nouveau.accel KO
Comment 12 poma 2016-07-27 21:01:13 UTC
Created attachment 125355 [details]
lightdm.log nouveau.noaccel OK
Comment 13 poma 2016-08-19 13:25:36 UTC
Created attachment 125910 [details]
Test XRender compositing
Comment 14 poma 2016-09-08 09:06:52 UTC
SW:
kernel-4.8.0-0.rc5.git1.1.fc26.x86_64
libdrm-2.4.70-2.fc26.x86_64
xorg-x11-server-Xorg-1.18.4-5.fc26.x86_64
mesa-dri-drivers-12.0.2-1.fc26.x86_64
lightdm-1.19.4-2.fc26.x86_64
lightdm-gtk-2.0.1-8.fc26.x86_64
sddm-0.14.0-1.fc26.x86_64
xfce4-session-4.12.1-30.20160822git7c13689.fc26.x86_64
xfwm4-4.12.3-36.20160823git2b08627.fc26.x86_64
Comment 15 poma 2016-09-08 09:07:38 UTC
dmesg:
...
nouveau 0000:02:00.0: disp: ERROR 5 [INVALID_STATE] 0b [] chid 1 mthd 0080 data 00000000
nouveau 0000:02:00.0: disp: Base 1:
nouveau 0000:02:00.0: disp: 	0084: 00000000              
nouveau 0000:02:00.0: disp: 	0088: 00000000              
nouveau 0000:02:00.0: disp: 	008c: 00000000              
nouveau 0000:02:00.0: disp: 	0090: 00000000              
nouveau 0000:02:00.0: disp: 	0094: 00000000 -> f0000000
nouveau 0000:02:00.0: disp: 	00a0: 00000000              
nouveau 0000:02:00.0: disp: 	00a4: 00000000              
nouveau 0000:02:00.0: disp: 	00c0: 00000000 -> ffff0000
nouveau 0000:02:00.0: disp: 	00c4: 00000000              
nouveau 0000:02:00.0: disp: 	00c8: 00000000              
nouveau 0000:02:00.0: disp: 	00cc: 00000000              
nouveau 0000:02:00.0: disp: 	00e0: 40000000              
nouveau 0000:02:00.0: disp: 	00e4: 00000000              
nouveau 0000:02:00.0: disp: 	00e8: 00000000              
nouveau 0000:02:00.0: disp: 	00ec: 00000000              
nouveau 0000:02:00.0: disp: 	00fc: 00000000              
nouveau 0000:02:00.0: disp: 	0100: fffe0000              
nouveau 0000:02:00.0: disp: 	0104: 00000000              
nouveau 0000:02:00.0: disp: 	0110: 00000000              
nouveau 0000:02:00.0: disp: 	0114: 00000000              
nouveau 0000:02:00.0: disp: Base 1 - Image 0:
nouveau 0000:02:00.0: disp: 	0800: 0001ef00 -> 00000500
nouveau 0000:02:00.0: disp: 	0804: 00000000              
nouveau 0000:02:00.0: disp: 	0808: 04380780 -> 03000400
nouveau 0000:02:00.0: disp: 	080c: 00007804 -> 00101000
nouveau 0000:02:00.0: disp: 	0810: 0000cf00              
nouveau 0000:02:00.0: disp: Base 1 - Image 1:
nouveau 0000:02:00.0: disp: 	0c00: 0001ef00 -> 00000500
nouveau 0000:02:00.0: disp: 	0c04: 00000000              
nouveau 0000:02:00.0: disp: 	0c08: 04380780 -> 03000400
nouveau 0000:02:00.0: disp: 	0c0c: 00007804 -> 00101000
nouveau 0000:02:00.0: disp: 	0c10: 0000cf00              
...
Comment 16 poma 2016-09-23 09:11:00 UTC
mesa-12.0.3
Comment 17 poma 2016-10-21 19:17:53 UTC
DRM: GPU lockup ...

= HW:
G98

= SW:
Linux 4.8.2
libdrm 2.4.71
X.Org X Server 1.18.4
lightdm 1.20.0
lightdm-gtk-greeter 2.0.2
xfce4-session 4.12.1-20160822git7c13689
xfwm4 4.12.3-20160823git2b08627

This is so far the worst outcome using nouveau,
after this system is practically unusable as Desktop,
hardware reset is required after the first Log Out.

= dmesg:
nouveau 0000:02:00.0: disp: ERROR 5 [INVALID_STATE] 0b [] chid 1 mthd 0080 data 00000000
nouveau 0000:02:00.0: disp: Base 1:
nouveau 0000:02:00.0: disp: 	0084: 00000000              
nouveau 0000:02:00.0: disp: 	0088: 00000000              
nouveau 0000:02:00.0: disp: 	008c: 00000000              
nouveau 0000:02:00.0: disp: 	0090: 00000000              
nouveau 0000:02:00.0: disp: 	0094: 00000000 -> f0000000
nouveau 0000:02:00.0: disp: 	00a0: 00000000              
nouveau 0000:02:00.0: disp: 	00a4: 00000000              
nouveau 0000:02:00.0: disp: 	00c0: 00000000 -> ffff0000
nouveau 0000:02:00.0: disp: 	00c4: 00000000              
nouveau 0000:02:00.0: disp: 	00c8: 00000000              
nouveau 0000:02:00.0: disp: 	00cc: 00000000              
nouveau 0000:02:00.0: disp: 	00e0: 40000000              
nouveau 0000:02:00.0: disp: 	00e4: 00000000              
nouveau 0000:02:00.0: disp: 	00e8: 00000000              
nouveau 0000:02:00.0: disp: 	00ec: 00000000              
nouveau 0000:02:00.0: disp: 	00fc: 00000000              
nouveau 0000:02:00.0: disp: 	0100: fffe0000              
nouveau 0000:02:00.0: disp: 	0104: 00000000              
nouveau 0000:02:00.0: disp: 	0110: 00000000              
nouveau 0000:02:00.0: disp: 	0114: 00000000              
nouveau 0000:02:00.0: disp: Base 1 - Image 0:
nouveau 0000:02:00.0: disp: 	0800: 0002e200 -> 00000500
nouveau 0000:02:00.0: disp: 	0804: 00000000              
nouveau 0000:02:00.0: disp: 	0808: 04380780 -> 03000400
nouveau 0000:02:00.0: disp: 	080c: 00007804 -> 00100800
nouveau 0000:02:00.0: disp: 	0810: 0000cf00 -> 0000e800
nouveau 0000:02:00.0: disp: Base 1 - Image 1:
nouveau 0000:02:00.0: disp: 	0c00: 0002e200 -> 00000500
nouveau 0000:02:00.0: disp: 	0c04: 00000000              
nouveau 0000:02:00.0: disp: 	0c08: 04380780 -> 03000400
nouveau 0000:02:00.0: disp: 	0c0c: 00007804 -> 00100800
nouveau 0000:02:00.0: disp: 	0c10: 0000cf00 -> 0000e800
nouveau: evo channel stalled
nouveau 0000:02:00.0: DRM: GPU lockup - switching to software fbcon


= Xorg.log:
(EE) [mi] EQ overflowing.  Additional events will be discarded until existing events are processed.
(EE) 
(EE) Backtrace:
(EE) 0: /usr/libexec/Xorg (mieqEnqueue+0x253) [0x57cd33]
(EE) 1: /usr/libexec/Xorg (QueueKeyboardEvents+0x52) [0x44f2c2]
(EE) 2: /usr/libexec/Xorg (xf86PostKeyboardEvent+0x3b) [0x488a8b]
(EE) 3: /usr/lib64/xorg/modules/input/evdev_drv.so (_init+0x2fb0) [0x7fe3135e4a20]
(EE) 4: /usr/lib64/xorg/modules/input/evdev_drv.so (_init+0x3695) [0x7fe3135e5d15]
(EE) 5: /usr/libexec/Xorg (DPMSSupported+0xe8) [0x478d98]
(EE) 6: /usr/libexec/Xorg (xf86SerialModemClearBits+0x2b2) [0x49e0b2]
(EE) 7: /lib64/libc.so.6 (__restore_rt+0x0) [0x7fe31ed2276f]
(EE) 8: /lib64/libc.so.6 (ioctl+0x5) [0x7fe31ede6b65]
(EE) 9: /lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fe3200cf2b8]
(EE) 10: /lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fe3200d1e2b]
(EE) 11: /lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0xc2) [0x7fe3198b31f2]
(EE) 12: /usr/lib64/xorg/modules/drivers/nouveau_drv.so (_init+0x20faa) [0x7fe319aff17a]
(EE) 13: /usr/libexec/Xorg (xf86DetachAllCrtc+0xb3b) [0x4b21fb]
(EE) 14: /usr/libexec/Xorg (xf86DestroyCursorInfoRec+0xb6a) [0x4bc99a]
(EE) 15: /usr/libexec/Xorg (RamDacHandleColormaps+0x83a) [0x4bb1ea]
(EE) 16: /usr/libexec/Xorg (miPointerUpdateSprite+0x26b) [0x5862db]
(EE) 17: /usr/libexec/Xorg (miPointerUpdateSprite+0x4ba) [0x58697a]
(EE) 18: /usr/libexec/Xorg (CompositeRegisterImplicitRedirectionException+0x42b9) [0x4cd289]
(EE) 19: /usr/libexec/Xorg (AddTraps+0x7810) [0x5205c0]
(EE) 20: /usr/libexec/Xorg (ConfineToShape+0x9a8) [0x440578]
(EE) 21: /usr/libexec/Xorg (WindowHasNewCursor+0x37) [0x441067]
(EE) 22: /usr/libexec/Xorg (CompositeRegisterImplicitRedirectionException+0x3f20) [0x4ccc60]
(EE) 23: /usr/libexec/Xorg (CompositeRegisterImplicitRedirectionException+0x4eda) [0x4cebda]
(EE) 24: /usr/libexec/Xorg (SendErrorToClient+0x2df) [0x436e2f]
(EE) 25: /usr/libexec/Xorg (remove_fs_handlers+0x463) [0x43ae63]
(EE) 26: /lib64/libc.so.6 (__libc_start_main+0xf1) [0x7fe31ed0e731]
(EE) 27: /usr/libexec/Xorg (_start+0x29) [0x424d59]
(EE) 28: ? (?+0x29) [0x29]
(EE) 
(EE) [mi] These backtraces from mieqEnqueue may point to a culprit higher up the stack.
(EE) [mi] mieq is *NOT* the cause.  It is a victim.
Comment 18 poma 2016-10-21 19:20:13 UTC
Since there is no response from developers.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.