Message spam about framebuffer compression in system log
Originally reported here: https://bugzilla.opensuse.org/show_bug.cgi?id=1168776
TL;DR: I'm getting loads of messages about "Reducing the compressed framebuffer…" (see below), sometimes several times a second with a 5.6 kernel on a system with P630 graphics and a 4k display. Another (i3) Haswell on a FullHD display doesn't have that problem. The message is misleading since framebuffer compression is actually not on, so there must be another code path / error that converges to that point.
Copy from the original bugreport
This kernel update (to 5.6) produces reams of these messages on my system:
Apr 05 09:17:36 Gertrud kernel: [drm] Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.
There is no BIOS setting I could change on my Dell T20 unfortunaltely.
I have already tried to set the kernel parameter i915.enable_fbc=0 (and a parameter file in /etc/modprobe.d with the same settings), which does result in a tainted kernel (so the setting should be active), but these messages still continue at a high rate and the frambuffer compression seems to be enabled anyway.
The 5.5.* kernels do not have this problem, this message never occurs there.
I updated my other Tumbleweed machine to 5.6.0 today (it's also a Haswell, but only an i3-4130 and FullHD display). Here the FBC is not on by default:
# cat /sys/kernel/debug/dri/0/i915_gem_objects
255 shrinkable [0 free] objects, 139313152 bytes
system: total:0x00000001e85dd000, available:0x00000001e85dd000 bytes
stolen: total:0x0000000002000000, available:0x0000000002000000 bytes
# cat /sys/kernel/debug/dri/0/i915_fbc_status
FBC disabled: disabled at runtime per module param
I can manually switch it on via module parameter in sysfs interface:
# cat /sys/kernel/debug/dri/0/i915_fbc_status
FBC enabled
Compressing: yes
No messages about "reducing compressed framebuffer size".
# lspci -vv -s 00:02.0
00:02.0 VGA compatible controller: Intel Corporation 4th Generation Core Processor Family Integrated Graphics Controller (rev 06) (prog-if 00 [VGA controller])
DeviceName: Onboard IGD
Subsystem: ASUSTeK Computer Inc. Device 8534
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 29
Region 0: Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at f000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee04004 Data: 4026
Capabilities: [d0] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [a4] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: i915
Kernel modules: i915
The plot thickens... back on the original system (Xeon E3-1225v3 and a 4k display); FBC is actually not on:
# cat /sys/kernel/debug/dri/0/i915_fbc_status
FBC disabled: disabled at runtime per module param
That likely explains why trying to switch it off just taints the kernel and doesn't seem to do aynthing else.
# lspci -vv -s 00:02.0
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3 Processor Integrated Graphics Controller (rev 06) (prog-if 00 [VGA controller])
DeviceName: Onboard IGD
Subsystem: Dell Device 0620
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 30
Region 0: Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at f000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee00018 Data: 0000
Capabilities: [d0] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [a4] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: i915
Kernel modules: i915
Trying to explicitly switch on FBC gets me this nugget:
# echo 1 > /sys/module/i915/parameters/enable_fbc
# cat /sys/kernel/debug/dri/0/i915_fbc_status
FBC disabled: pixel rate is too big
The messages continue to be spewed out, but the actual error that trigger them is probably unrelated to framebuffer compression and a bug somewhere else in the driver.