Bug 92851

Summary: NV34: Xfwm4 compositor broken on S4(Suspend to disk) RESUME
Product: xorg Reporter: poma <pomidorabelisima>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=92852
Whiteboard:
i915 platform: i915 features:

Description poma 2015-11-07 03:42:08 UTC
NV34 / 4.2.5-201.fc22.i686

dmesg:
[   24.812240] nouveau  [  DEVICE][0000:01:00.0] Chipset: NV34 (NV34)
[   24.812249] nouveau  [  DEVICE][0000:01:00.0] Family : NV30
...
[  178.486096] ACPI: Waking up from system sleep state S4
...
[  355.012379] nouveau E[   PFIFO][0000:01:00.0] DMA_PUSHER - ch 1 [Xorg[517]] get 0x0003c528 put 0x00025618 state 0xc000fa40 (err: MEM_FAULT) push 0x00000000
[  355.012391] nouveau W[   PFIFO][0000:01:00.0] unknown intr 0x00010000
[  608.759016] nouveau E[Xorg[517]] failed to idle channel 0xcccc0001 [Xorg[517]]
[  638.934015] nouveau E[Xorg[517]] failed to idle channel 0xcccc0001 [Xorg[517]]
[  669.024015] nouveau E[Xorg[517]] failed to idle channel 0xcccc0000 [Xorg[517]]
[  699.220016] nouveau E[Xorg[517]] failed to idle channel 0xcccc0000 [Xorg[517]]
[  715.214259] nouveau  [     DRM] 0xDBBA: Parsing digital output script table
[  719.981109] nouveau E[  PGRAPH][0000:01:00.0]  (unknown bits 0x00000080) nsource: nstatus:
[  719.981129] nouveau E[  PGRAPH][0000:01:00.0] ch 1 [Xorg[1579]] subc 0 class 0x0039 mthd 0x0100 data 0x00000000
[  830.456017] nouveau E[Xorg[1579]] failed to idle channel 0xcccc0001 [Xorg[1579]]
[  860.514016] nouveau E[Xorg[1579]] failed to idle channel 0xcccc0001 [Xorg[1579]]
[  891.004014] nouveau E[Xorg[1579]] failed to idle channel 0xcccc0000 [Xorg[1579]]
[  902.422408] nouveau  [     DRM] 0xDB7C: Parsing digital output script table
[  902.518808] nouveau E[     DRM] GPU lockup - switching to software fbcon
[  921.324016] nouveau E[Xorg[1579]] failed to idle channel 0xcccc0000 [Xorg[1579]]
[  952.652018] nouveau E[Xorg[1579]] failed to idle channel 0xcccc0000 [Xorg[1579]]
[  982.702016] nouveau E[Xorg[1579]] failed to idle channel 0xcccc0000 [Xorg[1579]]
Comment 1 Ilia Mirkin 2015-11-07 03:48:11 UTC
Are you using DRI3? If so, please switch back to DRI2.

What mesa version are you using (this is relevant if you're using DRI3).
Comment 2 poma 2015-11-07 04:13:12 UTC
How to reproduce:

Build, install and use Xfwm4 from git commit:
"compositor: Fix GL without ARB_texture_rectangle"
http://git.xfce.org/xfce/xfwm4/commit/?id=2cfac64

The problem applies to both, DRI3/XPresent and GLX, use_compositing true,
therefore build, install and use Xfwm4 configured:

- DRI3/XPresent - configure --disable-epoxy --enable-xpresent
   Build Configuration for xfwm4:
     Xpresent support:             yes
     Epoxy support:                no

- GLX - configure --disable-xpresent --enable-epoxy
   Build Configuration for xfwm4:
     Xpresent support:             no
     Epoxy support:                yes


1. Log in to xfce4-session

2. Make sure display compositing is enabled:
   $ xfconf-query --channel xfwm4 --property /general/use_compositing
   true

3. Suspend to disk:
   $ systemctl hibernate
   Of course, STD(S4) must be functional and correctly configured

4. RESUME(thaw) from S4

5. Disable display compositing:
   $ xfconf-query --channel xfwm4 --property /general/use_compositing --set false
   $ xfconf-query --channel xfwm4 --property /general/use_compositing
   false

After this machine need reboot, shuffling multi-user.target & graphical.target ain't helping.
Comment 3 Ilia Mirkin 2015-11-07 04:19:33 UTC
Does this only happen with a suspend in between? Does it still happen if you stick to DRI2 instead of using DRI3?
Comment 4 poma 2015-11-07 04:27:15 UTC
SW:
kernel-core-4.2.5-201.fc22.i686
libdrm-2.4.61-3.fc22.i686
xorg-x11-server-Xorg-1.17.4-1.fc22.i686
xorg-x11-drv-nouveau-1.0.12-0.3.fc22.i686
mesa-dri-drivers-10.6.9-1.20151008.fc22.i686
Comment 5 poma 2015-11-07 04:30:27 UTC
(In reply to Ilia Mirkin from comment #3)
> Does this only happen with a suspend in between? Does it still happen if you
> stick to DRI2 instead of using DRI3?

"suspend in between" - please translate.

DRI2 vs DRI3 - it should wait for testing.
Comment 6 poma 2015-11-07 17:17:15 UTC
DRI2:

dmesg:
[  422.359015] nouveau E[Xorg[500]] failed to idle channel 0xcccc0000 [Xorg[500]]
[  437.442018] nouveau E[Xorg[500]] failed to idle channel 0xcccc0000 [Xorg[500]]
[  439.360799] nouveau  [     DRM] 0xDBBA: Parsing digital output script table
[  541.599015] nouveau E[Xorg[1970]] failed to idle channel 0xcccc0000 [Xorg[1970]]
[  556.605016] nouveau E[Xorg[1970]] failed to idle channel 0xcccc0000 [Xorg[1970]]
[  556.865554] nouveau  [     DRM] 0xDBBA: Parsing digital output script table
[  558.644261] nouveau E[  PGRAPH][0000:01:00.0]  ERROR nsource: DMA_W_PROTECTION nstatus: PROTECTION_FAULT
[  558.644283] nouveau E[  PGRAPH][0000:01:00.0] ch 1 [Xorg[2277]] subc 0 class 0x0039 mthd 0x0100 data 0x00000000
[  656.669016] nouveau E[Xorg[2277]] failed to idle channel 0xcccc0001 [Xorg[2277]]
[  671.677018] nouveau E[Xorg[2277]] failed to idle channel 0xcccc0001 [Xorg[2277]]
[  686.685018] nouveau E[Xorg[2277]] failed to idle channel 0xcccc0000 [Xorg[2277]]
[  701.697016] nouveau E[Xorg[2277]] failed to idle channel 0xcccc0000 [Xorg[2277]]
[  701.964960] nouveau E[   PFIFO][0000:01:00.0] DMA_PUSHER - ch 0 [DRM] get 0xff2c4784 put 0xff2c4784 state 0xdf2c4785 (err: MEM_FAULT) push 0x00001100
[  716.975018] nouveau E[lightdm-gtk-gre[2287]] failed to idle channel 0xcccc0000 [lightdm-gtk-gre[2287]]
[  731.997016] nouveau E[lightdm-gtk-gre[2287]] failed to idle channel 0xcccc0000 [lightdm-gtk-gre[2287]]
[  732.916448] nouveau  [     DRM] 0xDB7C: Parsing digital output script table
[  732.998946] nouveau E[     DRM] GPU lockup - switching to software fbcon
[  733.393017] nouveau E[  PGRAPH][0000:01:00.0] idle timed out with status 0x00022001
[  733.785006] nouveau E[  PGRAPH][0000:01:00.0] idle timed out with status 0x00022001
[  764.136053] nouveau  [     DRM] 0xDBBA: Parsing digital output script table
Comment 7 poma 2015-11-08 00:09:21 UTC
[  401.172019] nouveau 0000:01:00.0: Xorg[503]: failed to idle channel 0xcccc0000 [Xorg[503]]
[  416.216018] nouveau 0000:01:00.0: Xorg[503]: failed to idle channel 0xcccc0000 [Xorg[503]]
[  431.445021] nouveau 0000:01:00.0: Xorg[503]: failed to idle channel 0xcccc0000 [Xorg[503]]
[  447.055020] nouveau 0000:01:00.0: Xorg[503]: failed to idle channel 0xcccc0000 [Xorg[503]]
[  448.789178] nouveau 0000:01:00.0: DRM: 0xDBBA: Parsing digital output script table
[  451.068014] nouveau 0000:01:00.0: DRM: 0xDB7C: Parsing digital output script table
[  451.070018] nouveau 0000:01:00.0: DRM: GPU lockup - switching to software fbcon
[  460.407565] nouveau 0000:01:00.0: DRM: 0xDBBA: Parsing digital output script table
[  463.793408] nouveau 0000:01:00.0: gr: intr 00000080 [] nsource 00000000 [] nstatus 00000000 [] ch 1 [Xorg[1358]] subc 0 class 0039 mthd 0100 data 00000000


[  419.496266] nouveau 0000:01:00.0: DRM: 0xDB7C: Parsing digital output script table
[  422.236361] nouveau 0000:01:00.0: DRM: 0xDBBA: Parsing digital output script table
[  477.174546] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1256]] subc 6 mthd 0000 data 80000013
[  477.174669] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1256]] subc 0 mthd 0184 data beef0202
[  477.174716] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1256]] subc 0 mthd 0188 data beef0201
[  477.174742] nouveau 0000:01:00.0: gr: intr 00100000 [ERROR] nsource 00000100 [DMA_W_PROTECTION] nstatus 04000000 [PROTECTION_FAULT] ch 1 [Xorg[1256]] subc 0 class 0039 mthd 0100 data 00000000
[  550.525020] nouveau 0000:01:00.0: Xorg[1256]: failed to idle channel 0xcccc0000 [Xorg[1256]]
[  550.785195] nouveau 0000:01:00.0: timeout at drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c:46/nv20_gr_chan_fini()!
[  565.785019] nouveau 0000:01:00.0: Xorg[1256]: failed to idle channel 0xcccc0000 [Xorg[1256]]
[  566.052328] nouveau 0000:01:00.0: DRM: 0xDB7C: Parsing digital output script table
[  566.141817] nouveau 0000:01:00.0: DRM: GPU lockup - switching to software fbcon
[  598.394019] nouveau 0000:01:00.0: timeout at drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c:1223/nv04_gr_idle()!
[  598.394019] nouveau 0000:01:00.0: gr: idle timed out with status 00023001
[  598.724013] nouveau 0000:01:00.0: timeout at drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c:1223/nv04_gr_idle()!
[  598.724013] nouveau 0000:01:00.0: gr: idle timed out with status 00023001
[  645.989021] nouveau 0000:01:00.0: Xorg[1667]: failed to idle channel 0xcccc0001 [Xorg[1667]]
[  660.995020] nouveau 0000:01:00.0: Xorg[1667]: failed to idle channel 0xcccc0001 [Xorg[1667]]
[  661.005399] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1667]] subc 2 mthd 0000 data 80000010
[  661.005430] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1667]] subc 2 mthd 0180 data 00000000
[  661.005453] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1667]] subc 2 mthd 0184 data beef0201
[  661.005474] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1667]] subc 2 mthd 0188 data beef0201
[  676.005020] nouveau 0000:01:00.0: Xorg[1667]: failed to idle channel 0xcccc0000 [Xorg[1667]]
[  691.016020] nouveau 0000:01:00.0: Xorg[1667]: failed to idle channel 0xcccc0000 [Xorg[1667]]
[  691.501018] nouveau 0000:01:00.0: timeout at drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c:1223/nv04_gr_idle()!
[  691.501018] nouveau 0000:01:00.0: gr: idle timed out with status 00023001
[  691.813010] nouveau 0000:01:00.0: timeout at drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c:1223/nv04_gr_idle()!
[  691.813010] nouveau 0000:01:00.0: gr: idle timed out with status 00023001
[  724.639020] nouveau 0000:01:00.0: Xorg[1758]: failed to idle channel 0xcccc0001 [Xorg[1758]]
[  739.645018] nouveau 0000:01:00.0: Xorg[1758]: failed to idle channel 0xcccc0001 [Xorg[1758]]
[  739.656336] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1758]] subc 2 mthd 0000 data 80000010
[  739.656368] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1758]] subc 2 mthd 0180 data 00000000
[  739.656392] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1758]] subc 2 mthd 0184 data beef0201
[  739.656414] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1758]] subc 2 mthd 0188 data beef0201
[  754.656018] nouveau 0000:01:00.0: Xorg[1758]: failed to idle channel 0xcccc0000 [Xorg[1758]]
[  769.663020] nouveau 0000:01:00.0: Xorg[1758]: failed to idle channel 0xcccc0000 [Xorg[1758]]
[  778.844018] nouveau 0000:01:00.0: timeout at drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c:1223/nv04_gr_idle()!
[  778.844018] nouveau 0000:01:00.0: gr: idle timed out with status 00023001
[  779.158005] nouveau 0000:01:00.0: timeout at drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c:1223/nv04_gr_idle()!
[  779.158005] nouveau 0000:01:00.0: gr: idle timed out with status 00023001
[  823.785020] nouveau 0000:01:00.0: Xorg[1925]: failed to idle channel 0xcccc0001 [Xorg[1925]]
[  838.789019] nouveau 0000:01:00.0: Xorg[1925]: failed to idle channel 0xcccc0001 [Xorg[1925]]
[  839.101568] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1925]] subc 2 mthd 0000 data 80000010
[  839.101599] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1925]] subc 2 mthd 0180 data 00000000
[  839.101622] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1925]] subc 2 mthd 0184 data beef0201
[  839.101643] nouveau 0000:01:00.0: fifo: CACHE_ERROR - ch 1 [Xorg[1925]] subc 2 mthd 0188 data beef0201
[  854.101015] nouveau 0000:01:00.0: Xorg[1925]: failed to idle channel 0xcccc0000 [Xorg[1925]]
[  869.107021] nouveau 0000:01:00.0: Xorg[1925]: failed to idle channel 0xcccc0000 [Xorg[1925]]
[  869.596017] nouveau 0000:01:00.0: timeout at drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c:1223/nv04_gr_idle()!
[  869.596017] nouveau 0000:01:00.0: gr: idle timed out with status 00023001
[  869.909003] nouveau 0000:01:00.0: timeout at drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c:1223/nv04_gr_idle()!
[  869.909003] nouveau 0000:01:00.0: gr: idle timed out with status 00023001


SW:
kernel-core-4.3.0-2.fc22.i686
xorg-x11-server-Xorg-1.18.0-0.6.20151027.fc22.i686
xorg-x11-drv-nouveau-1.0.12-0.4.fc22.i686
mesa-dri-drivers-11.1.0-0.devel.13.5ae37ae.fc22.i686
libdrm-2.4.65-1.fc22.i686
libepoxy-1.3.1-0.1.20150929gitb3b8bd9.fc22.i686
libXpresent-1.0.0-1.fc22.i686
xfwm4-4.12.3-17.2.glx.git20151106.fc22.i686
xfwm4-4.12.3-17.1.xpresent.nv34.git20151106.fc22.i686
Comment 8 poma 2015-11-10 19:16:07 UTC
The same happens with:

- XRender - configure --enable-render --disable-epoxy --disable-xpresent
   Build Configuration for xfwm4:
     XSync support:                yes
     Render support:               yes
     Xrandr support:               yes
     Xpresent support:             no
     Embedded compositor:          yes
     Epoxy support:                no


as if the compositor as whole is affected.
Comment 9 Martin Peres 2019-12-04 09:05:57 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/issues/230.

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.