Re: Blank console but X11 works on MCP79 - old regression since 3.8

From: Ondrej Zary
Date: Fri Nov 17 2017 - 12:34:05 EST


On Friday 17 November 2017 15:43:33 Ilia Mirkin wrote:
> With a new kernel, mind grabbing a dmesg with drm.debug=0x1e
> nouveau.debug=debug (or maybe even =trace)? Maybe also see if
> fbcon/fbdev have any debug things that can be turned on?

Here's diff of the 32MB and 64MB debug logs:

--- nouveau-debug-32mb.txt- 2017-11-17 18:12:06.290108330 +0100
+++ nouveau-debug-64mb.txt- 2017-11-17 18:12:31.709696096 +0100
@@ -81,9 +81,9 @@
nouveau 0000:02:00.0: tmr: numerator : 0000000c
nouveau 0000:02:00.0: tmr: denominator : 00000005
nouveau 0000:02:00.0: tmr: timer frequency : 31250Hz
-nouveau 0000:02:00.0: tmr: time low : 6335d09e
+nouveau 0000:02:00.0: tmr: time low : 7bb102a6
nouveau 0000:02:00.0: tmr: time high : 00000003
-nouveau 0000:02:00.0: fb: 32 MiB stolen system memory
+nouveau 0000:02:00.0: fb: 64 MiB stolen system memory
nouveau 0000:02:00.0: fb: 0 compression tags
nouveau 0000:02:00.0: volt: current voltage unknown
nouveau 0000:02:00.0: i2c: bus 0002: probing monitoring devices
@@ -103,11 +103,11 @@
nouveau 0000:02:00.0: clk: 1b: 450000 KHz
nouveau 0000:02:00.0: clk: --: core 450 MHz shader 1100 MHz vdec 450 MHz
nouveau: DRM:00000000:00000080: init children...
-nouveau: DRM:00000000:00000080: init completed in 71380us
-[TTM] Zone kernel: Available graphics memory: 444902 kiB
-[TTM] Zone highmem: Available graphics memory: 497930 kiB
+nouveau: DRM:00000000:00000080: init completed in 71260us
+[TTM] Zone kernel: Available graphics memory: 445198 kiB
+[TTM] Zone highmem: Available graphics memory: 481842 kiB
[TTM] Initializing pool allocator
-nouveau 0000:02:00.0: DRM: VRAM: 32 MiB
+nouveau 0000:02:00.0: DRM: VRAM: 64 MiB
nouveau 0000:02:00.0: DRM: GART: 1048576 MiB
nouveau 0000:02:00.0: DRM: TMDS table version 2.0
nouveau 0000:02:00.0: DRM: DCB version 4.0
@@ -126,22 +126,22 @@
nouveau: DRM:00000000:0000887d: init completed in 96us
nouveau: DRM:00000000:00000002: fini children...
nouveau: DRM:00000000:00000002: fini running...
-nouveau: DRM:00000000:00000002: fini completed in 66us
+nouveau: DRM:00000000:00000002: fini completed in 64us
nouveau: DRM:00000000:00000002: destroy children...
nouveau: DRM:00000000:00000002: destroy running...
-nouveau: DRM:00000000:00000002: destroy completed in 69us...
+nouveau: DRM:00000000:00000002: destroy completed in 68us...
nouveau: DRM:f0000000:0000003d: init running...
nouveau: DRM:f0000000:0000003d: init children...
-nouveau: DRM:f0000000:0000003d: init completed in 64us
+nouveau: DRM:f0000000:0000003d: init completed in 66us
nouveau: DRM:f0000001:0000003d: init running...
nouveau: DRM:f0000001:0000003d: init children...
-nouveau: DRM:f0000001:0000003d: init completed in 68us
+nouveau: DRM:f0000001:0000003d: init completed in 66us
nouveau: DRM:00000000:0000827a: init running...
nouveau: DRM:00000000:0000827a: init children...
-nouveau: DRM:00000000:0000827a: init completed in 67us
+nouveau: DRM:00000000:0000827a: init completed in 73us
nouveau: DRM:00000000:00000002: init running...
nouveau: DRM:00000000:00000002: init children...
-nouveau: DRM:00000000:00000002: init completed in 66us
+nouveau: DRM:00000000:00000002: init completed in 68us
nouveau: DRM:00000000:0000837c: init running...
nouveau: DRM:00000000:0000837c: init children...
nouveau: DRM:00000000:0000837c: init completed in 71us
@@ -150,16 +150,16 @@
nouveau: DRM:00000000:00000002: fini completed in 66us
nouveau: DRM:00000000:00000002: destroy children...
nouveau: DRM:00000000:00000002: destroy running...
-nouveau: DRM:00000000:00000002: destroy completed in 66us...
+nouveau: DRM:00000000:00000002: destroy completed in 85us...
nouveau: DRM:f0000000:0000003d: init running...
nouveau: DRM:f0000000:0000003d: init children...
-nouveau: DRM:f0000000:0000003d: init completed in 66us
+nouveau: DRM:f0000000:0000003d: init completed in 65us
nouveau: DRM:f0000001:0000003d: init running...
nouveau: DRM:f0000001:0000003d: init children...
nouveau: DRM:f0000001:0000003d: init completed in 66us
nouveau: DRM:00000000:0000827b: init running...
nouveau: DRM:00000000:0000827b: init children...
-nouveau: DRM:00000000:0000827b: init completed in 69us
+nouveau: DRM:00000000:0000827b: init completed in 71us
nouveau: DRM:00000000:00000002: init running...
nouveau: DRM:00000000:00000002: init children...
nouveau: DRM:00000000:00000002: init completed in 66us
@@ -174,43 +174,43 @@
nouveau: DRM:00000000:00000002: destroy completed in 66us...
nouveau: DRM:f0000000:0000003d: init running...
nouveau: DRM:f0000000:0000003d: init children...
-nouveau: DRM:f0000000:0000003d: init completed in 64us
+nouveau: DRM:f0000000:0000003d: init completed in 66us
nouveau: DRM:f0000001:0000003d: init running...
nouveau: DRM:f0000001:0000003d: init children...
nouveau: DRM:f0000001:0000003d: init completed in 66us
nouveau: DRM:00000000:0000827a: init running...
nouveau: DRM:00000000:0000827a: init children...
-nouveau: DRM:00000000:0000827a: init completed in 71us
+nouveau: DRM:00000000:0000827a: init completed in 72us
nouveau: DRM:00000000:00000002: init running...
nouveau: DRM:00000000:00000002: init children...
-nouveau: DRM:00000000:00000002: init completed in 65us
+nouveau: DRM:00000000:00000002: init completed in 66us
nouveau: DRM:00000000:0000837c: init running...
nouveau: DRM:00000000:0000837c: init children...
-nouveau: DRM:00000000:0000837c: init completed in 71us
+nouveau: DRM:00000000:0000837c: init completed in 72us
nouveau: DRM:00000000:00000002: fini children...
nouveau: DRM:00000000:00000002: fini running...
-nouveau: DRM:00000000:00000002: fini completed in 81us
+nouveau: DRM:00000000:00000002: fini completed in 66us
nouveau: DRM:00000000:00000002: destroy children...
nouveau: DRM:00000000:00000002: destroy running...
-nouveau: DRM:00000000:00000002: destroy completed in 67us...
+nouveau: DRM:00000000:00000002: destroy completed in 66us...
nouveau: DRM:f0000000:0000003d: init running...
nouveau: DRM:f0000000:0000003d: init children...
-nouveau: DRM:f0000000:0000003d: init completed in 63us
+nouveau: DRM:f0000000:0000003d: init completed in 66us
nouveau: DRM:f0000001:0000003d: init running...
nouveau: DRM:f0000001:0000003d: init children...
-nouveau: DRM:f0000001:0000003d: init completed in 66us
+nouveau: DRM:f0000001:0000003d: init completed in 75us
nouveau: DRM:00000000:0000827b: init running...
nouveau: DRM:00000000:0000827b: init children...
-nouveau: DRM:00000000:0000827b: init completed in 159us
+nouveau: DRM:00000000:0000827b: init completed in 72us
nouveau: DRM:00000000:00000002: init running...
nouveau: DRM:00000000:00000002: init children...
-nouveau: DRM:00000000:00000002: init completed in 65us
+nouveau: DRM:00000000:00000002: init completed in 66us
nouveau: DRM:00000000:0000837e: init running...
nouveau: DRM:00000000:0000837e: init children...
-nouveau: DRM:00000000:0000837e: init completed in 70us
+nouveau: DRM:00000000:0000837e: init completed in 71us
nouveau: DRM:00000000:00000002: fini children...
nouveau: DRM:00000000:00000002: fini running...
-nouveau: DRM:00000000:00000002: fini completed in 66us
+nouveau: DRM:00000000:00000002: fini completed in 65us
nouveau: DRM:00000000:00000002: destroy children...
nouveau: DRM:00000000:00000002: destroy running...
nouveau: DRM:00000000:00000002: destroy completed in 66us...
@@ -224,34 +224,34 @@
[drm] Driver supports precise vblank timestamp query.
nouveau: DRM:00000000:ffffffff: init running...
nouveau: DRM:00000000:ffffffff: init children...
-nouveau: DRM:00000000:ffffffff: init completed in 77us
+nouveau: DRM:00000000:ffffffff: init completed in 76us
nouveau: DRM:00000000:00000002: init running...
nouveau: DRM:00000000:00000002: init children...
-nouveau: DRM:00000000:00000002: init completed in 67us
+nouveau: DRM:00000000:00000002: init completed in 66us
nouveau: DRM:00000000:0000826f: init running...
nouveau: DRM:00000000:0000826f: init children...
-nouveau: DRM:00000000:0000826f: init completed in 171us
+nouveau: DRM:00000000:0000826f: init completed in 173us
nouveau: DRM:80000002:0000003d: init running...
nouveau: DRM:80000002:0000003d: init children...
-nouveau: DRM:80000002:0000003d: init completed in 66us
+nouveau: DRM:80000002:0000003d: init completed in 67us
nouveau: DRM:80000003:0000003d: init running...
nouveau: DRM:80000003:0000003d: init children...
-nouveau: DRM:80000003:0000003d: init completed in 68us
+nouveau: DRM:80000003:0000003d: init completed in 64us
nouveau: DRM:55550000:fffffffa: init running...
nouveau: DRM:00000000:00000000: init running...
nouveau: DRM:00000000:00000000: init children...
-nouveau: DRM:00000000:00000000: init completed in 66us
+nouveau: DRM:00000000:00000000: init completed in 65us
nouveau: DRM:55550000:fffffffa: init children...
-nouveau: DRM:55550000:fffffffa: init completed in 262us
+nouveau: DRM:55550000:fffffffa: init completed in 263us
nouveau: DRM:80000006:0000003d: init running...
nouveau: DRM:80000006:0000003d: init children...
-nouveau: DRM:80000006:0000003d: init completed in 65us
+nouveau: DRM:80000006:0000003d: init completed in 66us
nouveau: DRM:00005039:00005039: init running...
nouveau: DRM:00000000:00000000: init running...
nouveau: DRM:00000000:00000000: init children...
nouveau: DRM:00000000:00000000: init completed in 66us
nouveau: DRM:00005039:00005039: init children...
-nouveau: DRM:00005039:00005039: init completed in 268us
+nouveau: DRM:00005039:00005039: init completed in 274us
nouveau 0000:02:00.0: DRM: MM: using M2MF for buffer copies
nouveau 0000:02:00.0: disp: supervisor 00000010 000002a0
nouveau 0000:02:00.0: disp: Core:
@@ -405,7 +405,7 @@
[drm:drm_setup_crtcs [drm_kms_helper]] desired mode 1280x1024 set on crtc 34 (0,0)
nouveau: DRM:ffff0000:0000003d: init running...
nouveau: DRM:ffff0000:0000003d: init children...
-nouveau: DRM:ffff0000:0000003d: init completed in 71us
+nouveau: DRM:ffff0000:0000003d: init completed in 68us
nouveau: DRM:ffff0000:0000003d: init running...
nouveau: DRM:ffff0000:0000003d: init children...
nouveau: DRM:ffff0000:0000003d: init completed in 67us
@@ -415,7 +415,7 @@
nouveau: DRM:0000502d:0000502d: init running...
nouveau: DRM:0000502d:0000502d: init children...
nouveau: DRM:0000502d:0000502d: init completed in 67us
-nouveau 0000:02:00.0: DRM: allocated 1280x1024 fb: 0x50000, bo f667ac00
+nouveau 0000:02:00.0: DRM: allocated 1280x1024 fb: 0x50000, bo f6afa000
fbcon: nouveaufb (fb0) is primary device
[drm:drm_crtc_helper_set_config [drm_kms_helper]]
[drm:drm_crtc_helper_set_config [drm_kms_helper]] [CRTC:34:crtc-0] [FB:61] #connectors=1 (x y) (0 0)
@@ -483,8 +483,8 @@
nouveau 0000:02:00.0: disp: 0860: 00000000 -> 00000500
nouveau 0000:02:00.0: disp: 0864: 00000000
nouveau 0000:02:00.0: disp: 0868: 00000000 -> 04000500
-nouveau 0000:02:00.0: disp: 086c: 00000000 -> 00100500
-nouveau 0000:02:00.0: disp: 0870: 0000e900 -> 00001e00
+nouveau 0000:02:00.0: disp: 086c: 00000000 -> 00100a00
+nouveau 0000:02:00.0: disp: 0870: 0000e900 -> 0000e800
nouveau 0000:02:00.0: disp: 0874: 00000000 -> ffff0000
nouveau 0000:02:00.0: disp: 0878: 00000000
nouveau 0000:02:00.0: disp: 0880: 05000000

Looks like it's using 8bpp (0x1e00) in 32MB case but 16bpp (0xe800) in 64MB
case. Why?

I get blank screen even with 64MB with video=1280x1024-8 kernel parameter.
Console works with video=1280x1024-16 even with 32MB stolen memory.

Conclusions: 8-bit support is broken and bpp reduction is weird.

> Sounds like things are generally working, just the fbcon -> nouveaufb
> path seems somehow buggered.
>
> Another thing to try would be nouveau.atomic=1
>
> On Fri, Nov 17, 2017 at 9:26 AM, Ondrej Zary <linux@xxxxxxxxxxxxxxxxxxxx> wrote:
> > Hello,
> > I've just been hit by this old bug which is still present in 4.14:
> > https://bugs.freedesktop.org/show_bug.cgi?id=80675
> >
> > On MCP79 (ION), when stolen memory is set to 32MB in BIOS, console is
> > blank but X11 works. When the stolen memory is increased to 64MB, console
> > works fine.
> >
> > Bisected it to this:
> >
> > 4f6029da58ba9204c98e33f4f3737fe085c87a6f is the first bad commit
> > commit 4f6029da58ba9204c98e33f4f3737fe085c87a6f
> > Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
> > Date: Fri Nov 16 11:54:31 2012 +1000
> >
> > drm/nv50-nvc0: switch to common disp impl, removing previous version
> >
> > Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
> >
> > It's a big change so I'm not able to do more debugging.
> >
> > --
> > Ondrej Zary


--
Ondrej Zary