Bug 254190 - graphics/drm-kmod: I get corruption at the top of all of my consoles
Summary: graphics/drm-kmod: I get corruption at the top of all of my consoles
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Many People
Assignee: freebsd-x11 (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-03-10 14:08 UTC by Steven Friedrich
Modified: 2021-03-11 10:19 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (x11)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steven Friedrich 2021-03-10 14:08:31 UTC
Full dmesg:
---<<BOOT>>---
Copyright (c) 1992-2020 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 12.2-RELEASE-p4 r369434 Special amd64
FreeBSD clang version 10.0.1 (git@github.com:llvm/llvm-project.git llvmorg-10.0.1-0-gef32c611aa2)
VT(efifb): resolution 1920x1080
CPU: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz (3192.24-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x906ea  Family=0x6  Model=0x9e  Stepping=10
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x7ffafbff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x121<LAHF,ABM,Prefetch>
  Structured Extended Features=0x29c6fbf<FSGSBASE,TSCADJ,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,NFPUSG,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PROCTRACE>
  Structured Extended Features2=0x40000000<SGXLC>
  Structured Extended Features3=0x9c002600<MCUOPT,MD_CLEAR,TSXFA,IBPB,STIBP,L1DFL,SSBD>
  XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
  TSC: P-state invariant, performance statistics
real memory  = 17179869184 (16384 MB)
avail memory = 16294457344 (15539 MB)
CPU microcode: no matching update found
Event timer "LAPIC" quality 600
ACPI APIC Table: <HPQOEM SLIC-CPC>
FreeBSD/SMP: Multiprocessor System Detected: 12 CPUs
FreeBSD/SMP: 1 package(s) x 6 core(s) x 2 hardware threads
random: unblocking device.
ioapic0 <Version 2.0> irqs 0-119 on motherboard
Launching APs: 1 10 2 8 4 6 11 3 7 9 5
Timecounter "TSC-low" frequency 1596120476 Hz quality 1000
random: entropy device external interface
000.000039 [4336] netmap_init               netmap: loaded module
module_register_init: MOD_LOAD (vesa, 0xffffffff80c22ae0, 0) error 19
random: registering fast source Intel Secure Key RNG
random: fast provider: "Intel Secure Key RNG"
[ath_hal] loaded
kbd1 at kbdmux0
nexus0
efirtc0: <EFI Realtime Clock> on motherboard
efirtc0: registered as a time-of-day clock, resolution 1.000000s
cryptosoft0: <software crypto> on motherboard
acpi0: <HPQOEM SLIC-CPC> on motherboard
acpi0: Power Button (fixed)
unknown: memory range not supported
cpu0: <ACPI CPU> on acpi0
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 24000000 Hz quality 950
Event timer "HPET" frequency 24000000 Hz quality 350
Event timer "HPET1" frequency 24000000 Hz quality 340
Event timer "HPET2" frequency 24000000 Hz quality 340
Event timer "HPET3" frequency 24000000 Hz quality 340
Event timer "HPET4" frequency 24000000 Hz quality 340
Event timer "HPET5" frequency 24000000 Hz quality 340
Event timer "HPET6" frequency 24000000 Hz quality 340
Event timer "HPET7" frequency 24000000 Hz quality 340
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1808-0x180b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
vgapci0: <VGA-compatible display> port 0x5000-0x503f mem 0x8d000000-0x8dffffff,0x90000000-0x9fffffff at device 2.0 on pci0
vgapci0: Boot video device
xhci0: <Intel Cannon Lake USB 3.1 controller> mem 0x8e300000-0x8e30ffff at device 20.0 on pci0
xhci0: 32 bytes context size, 64-bit DMA
usbus0 on xhci0
usbus0: 5.0Gbps Super Speed USB v3.0
pci0: <memory, RAM> at device 20.2 (no driver attached)
sdhci_pci0: <Generic SD HCI> mem 0x8e31f000-0x8e31ffff at device 20.5 on pci0
sdhci_pci0: 1 slot(s) allocated
ig4iic0: <Intel Cannon Lake-H I2C Controller-0> at device 21.0 on pci0
ig4iic0: Using MSI
iicbus0: <Philips I2C bus (ACPI-hinted)> on ig4iic0
ig4iic1: <Intel Cannon Lake-H I2C Controller-1> at device 21.1 on pci0
ig4iic1: Using MSI
iicbus1: <Philips I2C bus (ACPI-hinted)> on ig4iic1
pci0: <simple comms> at device 22.0 (no driver attached)
ahci0: <Intel Cannon Lake AHCI SATA controller> port 0x5090-0x5097,0x5080-0x5083,0x5060-0x507f mem 0x8e314000-0x8e315fff,0x8e31b000-0x8e31b0ff,0x8e31a000-0x8e31a7ff at device 23.0 on pci0
ahci0: AHCI v1.31 with 6 6Gbps ports, Port Multiplier not supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich2: <AHCI channel> at channel 2 on ahci0
ahcich3: <AHCI channel> at channel 3 on ahci0
ahcich4: <AHCI channel> at channel 4 on ahci0
ahcich5: <AHCI channel> at channel 5 on ahci0
ahciem0: <AHCI enclosure management bridge> on ahci0
pcib1: <ACPI PCI-PCI bridge> at device 28.0 on pci0
pci1: <ACPI PCI bus> on pcib1
re0: <Realtek PCIe GbE Family Controller> port 0x4000-0x40ff mem 0x8e204000-0x8e204fff,0x8e200000-0x8e203fff at device 0.0 on pci1
re0: Using Memory Mapping!
re0: Using 1 MSI-X message
re0: ASPM disabled
re0: version:1.96.04
re0: Ethernet address: redacted

This product is covered by one or more of the following patents:            
US6,570,884, US6,115,776, and US6,327,625.
re0: Ethernet address: redacted
pcib2: <ACPI PCI-PCI bridge> at device 28.5 on pci0
pci2: <ACPI PCI bus> on pcib2
pci2: <network> at device 0.0 (no driver attached)
pci0: <simple comms> at device 30.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
hdac0: <Intel Coffee Lake HDA Controller> mem 0x8e310000-0x8e313fff,0x8e000000-0x8e0fffff at device 31.3 on pci0
pci0: <serial bus> at device 31.5 (no driver attached)
acpi_button0: <Sleep Button> on acpi0
acpi_button1: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz1: <Thermal Zone> on acpi0
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 3 flags 0x10 on acpi0
acpi_syscontainer0: <System Container> on acpi0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0
atrtc0: Warning: Couldn't map I/O.
atrtc0: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
coretemp0: <CPU On-Die Thermal Sensors> on cpu0
est0: <Enhanced SpeedStep Frequency Control> on cpu0
Timecounters tick every 1.000 msec
hdacc0: <Realtek ALC671 HDA CODEC> at cad 0 on hdac0
hdaa0: <Realtek ALC671 Audio Function Group> at nid 1 on hdacc0
pcm0: <Realtek ALC671 (Rear Analog)> at nid 20 and 27 on hdaa0
pcm1: <Realtek ALC671 (Analog)> at nid 33 and 24 on hdaa0
hdacc1: <Intel Kaby Lake HDA CODEC> at cad 2 on hdac0
hdaa1: <Intel Kaby Lake Audio Function Group> at nid 1 on hdacc1
pcm2: <Intel Kaby Lake (HDMI/DP 8ch)> at nid 3 on hdaa1
Trying to mount root from ufs:/dev/ada0p4 [rw]...
Root mount waiting for: usbus0 CAM
ugen0.1: <0x8086 XHCI root HUB> at usbus0
uhub0: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
ses0 at ahciem0 bus 0 scbus6 target 0 lun 0
ses0: <AHCI SGPIO Enclosure 2.00 0001> SEMB S-E-S 2.00 device
ses0: SEMB SES Device
ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <TOSHIBA HDWE160 FS2A> ATA8-ACS SATA 3.x device
ada0: Serial Number 68IWK36IF56D
ada0: 600.000MB/s transfers (SATA 3.x, UDMA5, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 5723166MB (11721045168 512 byte sectors)
ses0: pass0,ada0 in 'Slot 00', SATA Slot: scbus0 target 0
ses0: pass1,cd0 in 'Slot 02', SATA Slot: scbus2 target 0
cd0 at ahcich2 bus 0 scbus2 target 0 lun 0
cd0: <hp PLDS DVDRW  DU8AESH 6HSM> Removable CD-ROM SCSI device
cd0: Serial Number XHDFPDYAR1BW
cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
uhub0: 24 ports with 24 removable, self powered
Root mount waiting for: usbus0
ugen0.2: <Chicony HP USB Keyboard> at usbus0
ukbd0 on uhub0
ukbd0: <Chicony HP USB Keyboard, class 0/0, rev 2.00/0.24, addr 1> on usbus0
kbd2 at ukbd0
ugen0.3: <PixArt HP USB Optical Mouse> at usbus0
Root mount waiting for: usbus0
ugen0.4: <Realtek Bluetooth Radio> at usbus0
mountroot: waiting for device /dev/ada0p4...
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
[drm] Unable to create a private tmpfs mount, hugepage support will be disabled(-19).
Successfully added WC MTRR for [0x90000000-0x9fffffff]: 0; 
[drm] Got stolen memory base rx8a800000, size 0x2000000
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] Connector HDMI-A-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.HDMI-A-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector DP-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.DP-1
[drm]   - kern.vt.fb.default_mode
[drm] Initialized i915 1.6.0 20171222 for drmn0 on minor 0
VT: Replacing driver "efifb" with new "fb".
start FB_INFO:
type=11 height=1080 width=1920 depth=32
cmsize=16 size=8294400
pbase=0x90040000 vbase=0xfffff80090040000
name=drmn0 flags=0x0 stride=7680 bpp=32
cmap[0]=0 cmap[1]=7f0000 cmap[2]=7f00 cmap[3]=c4a000
end FB_INFO
drmn0: fb0: inteldrmfb frame buffer device
i915/kbl_dmc_ver1_04.bin: could not load firmware image, error 2
drmn0: fail (0) to get firmware image with name: i915/kbl_dmc_ver1_04.bin
drmn0: successfully loaded firmware image with mapped name: i915_kbl_dmc_ver1_04_bin
[drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
lo0: link state changed to UP
re0: link state changed to UP
uhid0 on uhub0
uhid0: <Chicony HP USB Keyboard, class 0/0, rev 2.00/0.24, addr 1> on usbus0
ums0 on uhub0
ums0: <PixArt HP USB Optical Mouse, class 0/0, rev 2.00/1.00, addr 2> on usbus0
ums0: 3 buttons and [XYZ] coordinates ID=0
ubt0 on uhub0
ubt0: <Bluetooth Radio> on usbus0
WARNING: attempt to domain_add(bluetooth) after domainfinalize()
WARNING: attempt to domain_add(netgraph) after domainfinalize()
CPU: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz (3192.24-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x906ea  Family=0x6  Model=0x9e  Stepping=10
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x7ffafbff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x121<LAHF,ABM,Prefetch>
  Structured Extended Features=0x29c6fbf<FSGSBASE,TSCADJ,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,NFPUSG,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PROCTRACE>
  Structured Extended Features2=0x40000000<SGXLC>
  Structured Extended Features3=0x9c002600<MCUOPT,MD_CLEAR,TSXFA,IBPB,STIBP,L1DFL,SSBD>
  XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
  TSC: P-state invariant, performance statistics

pciconf -lv pci0:0:20:2
none0@pci0:0:20:2:	class=0x050000 card=0x72708086 chip=0xa36f8086 rev=0x10 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Cannon Lake PCH Shared SRAM'
    class      = memory
    subclass   = RAM

drm-fbsd12.0-kmod-4.16.g20201016_1 =
drm-kmod-g20190710_1               =
drm_info-2.2.0_1                   =
libdrm-2.4.104,1                   =

Note the drm message regarding stolen memory.  You can't use stolen memory.  It is causing my console corruption.

HP-Slimline 290-p0014 Desktop using integrated UHD Graphics 630
FreeBSD FreeBSD 12.2-RELEASE-p4 FreeBSD 12.2-RELEASE-p4 r369434 Special  amd64
Path: /usr/ports
Working Copy Root Path: /usr/ports
URL: https://svn.freebsd.org/ports/head
Relative URL: ^/head
Repository Root: https://svn.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 567992
Node Kind: directory
Schedule: normal
Last Changed Author: vd
Last Changed Rev: 567992
Last Changed Date: 2021-03-10 05:29:13 -0500 (Wed, 10 Mar 2021)
Comment 1 Niclas Zeising freebsd_committer 2021-03-10 14:39:47 UTC
This seem to miss a lot of information. What exactly is the problem?  Which version of FreeBSD, which version of drm-*-kmod?
Comment 2 Steven Friedrich 2021-03-10 14:44:25 UTC
You missed the information at the bottom of the bug report.
Here it is again:

Note the drm message regarding stolen memory.  You can't use stolen memory.  It is causing my console corruption.

drm-fbsd12.0-kmod-4.16.g20201016_1 =
drm-kmod-g20190710_1               =
drm_info-2.2.0_1                   =
libdrm-2.4.104,1                   =

HP-Slimline 290-p0014 Desktop using integrated UHD Graphics 630
FreeBSD FreeBSD 12.2-RELEASE-p4 FreeBSD 12.2-RELEASE-p4 r369434 Special  amd64
Path: /usr/ports
Working Copy Root Path: /usr/ports
URL: https://svn.freebsd.org/ports/head
Relative URL: ^/head
Repository Root: https://svn.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 567992
Node Kind: directory
Schedule: normal
Last Changed Author: vd
Last Changed Rev: 567992
Last Changed Date: 2021-03-10 05:29:13 -0500 (Wed, 10 Mar 2021)
Comment 3 Niclas Zeising freebsd_committer 2021-03-10 14:49:25 UTC
(In reply to Steven Friedrich from comment #2)

Yes, I missed it.  All I noticed was a pasted dmesg and a bug title that said graphics/drm-kmod, no hint about anything else.

In any case, what type of corruption?  Have you tried on FreeBSD 13, the driver has seen a lot of updates there.
Comment 4 Steven Friedrich 2021-03-10 15:30:48 UTC
yes, sir.  I tried 13RC-1.  Same "stolen memory" in dmesg.
When I use mouse console cut and paste, or launch x11, I get corruption at the top of all of my consoles.  Sometimes it shows the freebsd beastie graphic.
Comment 5 Jan Beich freebsd_committer 2021-03-10 21:01:48 UTC
Is this a regression? Does it work fine on Linux? Are other display servers affected (kmscube, wlroots, arcan)?

Maybe try playing with (reserved) onboard video memory in BIOS, disabling framebuffer compression (compat.linuxkpi.i915_enable_fbc=0 in /boot/loader.conf) or switching from modesetting (builtin generic DDX) to xf86-video-intel then enable SNA+DRI3.

"Got stolen memory" is normal behavior on Intel iGPUs, see
https://github.com/freebsd/drm-kmod/blob/drm_v5.4.92_1/drivers/gpu/drm/i915/gem/i915_gem_stolen.c#L21-L29
Comment 6 Steven Friedrich 2021-03-10 21:55:33 UTC
(In reply to Jan Beich from comment #5)
No, it's not a regression, it has been this way for YEARS.
Does it work fine on Linux?
I didn't previously know FreeBSD users were supposed to test Linux.  I happen to be tracking KDE Neon, Ubuntu, and Linux Mint Cinnamon, and no I don't see this there, but I also don't see any boot messages on Linux.
Maybe try playing with (reserved) onboard video memory in BIOS
I see nothing of the sort in my BIOS.
 disabling framebuffer compression (compat.linuxkpi.i915_enable_fbc=0 in /boot/loader.conf
This I could try...
 switching from modesetting (builtin generic DDX) to xf86-video-intel then enable SNA+DRI3.
I have no idea what you're talking about.  You are the video expert, I'm a user.
"Got stolen memory" is normal behavior on Intel iGPUs
Maybe because it's existed since Intel build i915 into their chips and you guys have ignored the problem since the beginning?
Doesn't that phrase "stolen memory" bother you?
I don't mean to be disrespectful, but I think you guys should consult with Intel about this memory.  I don't think it's for your use at all.
Comment 7 Emmanuel Vadot freebsd_committer 2021-03-11 09:18:22 UTC
Stolen memory is the reserved memory by the bios assign to the graphics card region.
It is perfectly normal to see that in dmesg
You don't see the message on Linux as it's a FreeBSD custom message :
https://github.com/freebsd/drm-kmod/blob/master/drivers/gpu/drm/i915/gem/i915_gem_stolen.c#L387

So this isn't your problem root cause.
For the logos appearing there is a bug on this, I still haven't found the root cause.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=248628
Comment 8 Steven Friedrich 2021-03-11 10:19:31 UTC
As an old hardware guy, I was curious when I saw this message:
"unknown: memory range not supported"

and this device:
none0@pci0:0:20:2:	class=0x050000 card=0x72708086 chip=0xa36f8086 rev=0x10 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Cannon Lake PCH Shared SRAM'
    class      = memory
    subclass   = RAM

I thought, what is that?  Well I found a rather opaque description in an Intel document at: https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/300-series-chipset-on-package-pch-datasheet-vol-1.pdf

21.7.2   SRAM
The local SRAM is used for ISH FW code storage and to read/write operational data.  The local SRAM block includes both the physical SRAM as well as the controller logic.  The SRAM is a total of 640 kbytes organized into banks of 32 kB each and is 32-bit wide.  The SRAM is shared with Intel CSME as shareable memory.  To protect against memory errors, the SRAM includes ECC support.  The ECC mechanism is able to detect multi-bit errors and correct for single bit errors.  The ISH firmware has the ability to put unused SRAM banks into lower power states to reduce power consumption.

That sounds to me like memory Intel uses between their OWN devices.
I would hope you would contact technical support at Intel and get clarification of whether you should be ignoring this memory range and leave it untouched.