drm-devel-kmod 5.7.19.g20220223 panics with external monitor

From: Jakob Alvermark <jakob_at_alvermark.net>
Date: Wed, 23 Feb 2022 18:57:25 UTC
Hi,


After updating drm-devel-kmod from 5.5.19.g20211230 to 5.7.19.g20220223 
it panics when loading amdgpu.ko.

This in on a ThinkPad X395 connected to external monitor (via the dock)

If undocked it loads without panic.

This is what I get after 'kldload amdgpu'


<6>[drm] amdgpu kernel modesetting enabled.
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
<6>[drm] initializing kernel modesetting (RAVEN 0x1002:0x15D8 
0x17AA:0x5126 0xD2
).
<6>[drm] register mmio base: 0xD0500000
<6>[drm] register mmio size: 524288
<6>[drm] add ip block number 0 <soc15_common>
<6>[drm] add ip block number 1 <gmc_v9_0>
<6>[drm] add ip block number 2 <vega10_ih>
<6>[drm] add ip block number 3 <psp>
<6>[drm] add ip block number 4 <gfx_v9_0>
<6>[drm] add ip block number 5 <sdma_v4_0>
<6>[drm] add ip block number 6 <powerplay>
<6>[drm] add ip block number 7 <dm>
<6>[drm] add ip block number 8 <vcn_v1_0>
drmn0: successfully loaded firmware image 'amdgpu/picasso_gpu_info.bin'
<6>ATOM BIOS: 113-PICASSO-114
drmn0: successfully loaded firmware image 'amdgpu/picasso_sdma.bin'
<6>[drm] VCN decode is enabled in VM mode
<6>[drm] VCN encode is enabled in VM mode
<6>[drm] JPEG decode is enabled in VM mode
<6>[drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment 
size is 9-bit
drmn0: VRAM: 2048M 0x000000F400000000 - 0x000000F47FFFFFFF (2048M used)
drmn0: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
drmn0: AGP: 267419648M 0x000000F800000000 - 0x0000FFFFFFFFFFFF
<6>[drm] Detected VRAM RAM=2048M, BAR=2048M
<6>[drm] RAM width 128bits DDR4
<6>[TTM] Zone  kernel: Available graphics memory: 7260874 KiB
<6>[TTM] Zone   dma32: Available graphics memory: 2097152 KiB
<6>[TTM] Initializing pool allocator
<6>[drm] amdgpu: 2048M of VRAM memory ready
<6>[drm] amdgpu: 3072M of GTT memory ready.
<6>[drm] GART: num cpu pages 262144, num gpu pages 262144
<6>[drm] PCIE GART of 1024M enabled (table at 0x000000F400900000).
drmn0: successfully loaded firmware image 'amdgpu/picasso_asd.bin'
drmn0: successfully loaded firmware image 'amdgpu/picasso_ta.bin'
drmn0: successfully loaded firmware image 'amdgpu/picasso_pfp.bin'
drmn0: successfully loaded firmware image 'amdgpu/picasso_me.bin'
drmn0: successfully loaded firmware image 'amdgpu/picasso_ce.bin'
drmn0: successfully loaded firmware image 'amdgpu/picasso_rlc.bin'
drmn0: successfully loaded firmware image 'amdgpu/picasso_mec.bin'
drmn0: successfully loaded firmware image 'amdgpu/picasso_mec2.bin'
<6>[drm] use_doorbell being set to: [true]
<6>amdgpu: [powerplay] hwmgr_sw_init smu backed is smu10_smu
drmn0: successfully loaded firmware image 'amdgpu/raven_dmcu.bin'
drmn0: successfully loaded firmware image 'amdgpu/picasso_vcn.bin'
<6>[drm] Found VCN firmware Version ENC: 1.12 DEC: 2 VEP: 0 Revision: 5
<6>[drm] PSP loading VCN firmware
<6>[drm] reserve 0x400000 from 0xf47f800000 for PSP TMR
drmn0: RAS: optional ras ta ucode is not available
<6>[drm] kiq ring mec 2 pipe 1 q 0
<6>[drm] DM_PPLIB: values for F clock
<6>[drm] DM_PPLIB:       400000 in kHz, 2924 in mV
<6>[drm] DM_PPLIB:       933000 in kHz, 3249 in mV
<6>[drm] DM_PPLIB:       1067000 in kHz, 3924 in mV
<6>[drm] DM_PPLIB:       1200000 in kHz, 4074 in mV
<6>[drm] DM_PPLIB: values for DCF clock
<6>[drm] DM_PPLIB:       300000 in kHz, 2924 in mV
<6>[drm] DM_PPLIB:       600000 in kHz, 3249 in mV
<6>[drm] DM_PPLIB:       626000 in kHz, 3924 in mV
<6>[drm] DM_PPLIB:       654000 in kHz, 4074 in mV
<6>[drm] Display Core initialized with v3.2.76!
lkpi_iic0: <LinuxKPI I2C> on drmn0
iicbus0: <Philips I2C bus> on lkpi_iic0
iicsmb0: <SMBus over I2C bridge> on iicbus0
smbus1: <System Management Bus> on iicsmb0
smb1: <SMBus generic I/O> on smbus1
iic0: <I2C generic I/O> on iicbus0
<6>[drm] Connector eDP-1: get mode from tunables:
<6>[drm]   - kern.vt.fb.modes.eDP-1
<6>[drm]   - kern.vt.fb.default_mode
lkpi_iic1: <LinuxKPI I2C> on drmn0
iicbus1: <Philips I2C bus> on lkpi_iic1
iicsmb1: <SMBus over I2C bridge> on iicbus1
smbus2: <System Management Bus> on iicsmb1
smb2: <SMBus generic I/O> on smbus2
iic1: <I2C generic I/O> on iicbus1
<6>[drm] Connector HDMI-A-1: get mode from tunables:
<6>[drm]   - kern.vt.fb.modes.HDMI-A-1
<6>[drm]   - kern.vt.fb.default_mode
lkpi_iic2: <LinuxKPI I2C> on drmn0
iicbus2: <Philips I2C bus> on lkpi_iic2
iicsmb2: <SMBus over I2C bridge> on iicbus2
smbus3: <System Management Bus> on iicsmb2
smb3: <SMBus generic I/O> on smbus3
iic2: <I2C generic I/O> on iicbus2
<6>[drm] Connector DP-1: get mode from tunables:
<6>[drm]   - kern.vt.fb.modes.DP-1
<6>[drm]   - kern.vt.fb.default_mode
lkpi_iic3: <LinuxKPI I2C> on drmn0
iicbus3: <Philips I2C bus> on lkpi_iic3
iicsmb3: <SMBus over I2C bridge> on iicbus3
smbus4: <System Management Bus> on iicsmb3
smb4: <SMBus generic I/O> on smbus4
iic3: <I2C generic I/O> on iicbus3
<6>[drm] Connector DP-2: get mode from tunables:
<6>[drm]   - kern.vt.fb.modes.DP-2
<6>[drm]   - kern.vt.fb.default_mode
<6>[drm] DM_MST: Differing MST start on aconnector: 0xfffff801dd4c2000 
[id: 77]
<6>[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
<6>[drm] VCN decode and encode initialized successfully(under DPG Mode).
<6>[drm] fb mappable at 0x3BFBC1000
<6>[drm] vram apper at 0x3BF000000
<6>[drm] size 8294400
<6>[drm] fb depth is 24
<6>[drm]    pitch is 7680
VT: Replacing driver "efifb" with new "fb".
start FB_INFO:
type=11 height=1080 width=1920 depth=32
pbase=0x3bfbc1000 vbase=0xfffffe01057c1000
name=drmn0 flags=0x0 stride=7680 bpp=32
end FB_INFO
drmn0: ring gfx uses VM inv eng 0 on hub 0
drmn0: ring comp_1.0.0 uses VM inv eng 1 on hub 0
drmn0: ring comp_1.1.0 uses VM inv eng 4 on hub 0
drmn0: ring comp_1.2.0 uses VM inv eng 5 on hub 0
drmn0: ring comp_1.3.0 uses VM inv eng 6 on hub 0
drmn0: ring comp_1.0.1 uses VM inv eng 7 on hub 0
drmn0: ring comp_1.1.1 uses VM inv eng 8 on hub 0
drmn0: ring comp_1.2.1 uses VM inv eng 9 on hub 0
drmn0: ring comp_1.3.1 uses VM inv eng 10 on hub 0
drmn0: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
drmn0: ring sdma0 uses VM inv eng 0 on hub 1
drmn0: ring vcn_dec uses VM inv eng 1 on hub 1
drmn0: ring vcn_enc0 uses VM inv eng 4 on hub 1
drmn0: ring vcn_enc1 uses VM inv eng 5 on hub 1
drmn0: ring jpeg_dec uses VM inv eng 6 on hub 1
sysctl_warn_reuse: can't re-use a leaf (hw.dri.debug)!
<6>[drm] Initialized amdgpu 3.37.0 20150101 for drmn0 on minor 0
<6>[drm] Connector DP-3: get mode from tunables:
<6>[drm]   - kern.vt.fb.modes.DP-3
<6>[drm]   - kern.vt.fb.default_mode
<6>[drm] DM_MST: added connector: 0xfffff801dd499000 [id: 86] [master: 
0xfffff801dd4c2000]
fbd0 on drmn0
WARNING: Device "fb" is Giant locked and may be deleted before FreeBSD 14.0.


Fatal trap 12: page fault while in kernel mode
cpuid = 5; apic id = 05
fault virtual address   = 0x1e
fault code              = supervisor write data, page not present
instruction pointer     = 0x20:0xffffffff8066f2c6
stack pointer           = 0x28:0xfffffe00b478faa0
frame pointer           = 0x28:0xfffffe00b478fad0
code segment            = base 0x0, limit 0xfffff, type 0x1b
                         = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 0 (linuxkpi_long_wq_8)
trap number             = 12
WARNING !drm_modeset_is_locked(&crtc->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:617
WARNING !drm_modeset_is_locked(&crtc->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:617
WARNING !drm_modeset_is_locked(&crtc->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:617
WARNING !drm_modeset_is_locked(&crtc->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:617
WARNING !drm_modeset_is_locked(&dev->mode_config.connection_mutex) 
failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:667
WARNING !drm_modeset_is_locked(&plane->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:892
WARNING !drm_modeset_is_locked(&plane->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:892
WARNING !drm_modeset_is_locked(&plane->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:892
WARNING !drm_modeset_is_locked(&plane->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:892
WARNING !drm_modeset_is_locked(&plane->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:892
WARNING !drm_modeset_is_locked(&plane->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:892
WARNING !drm_modeset_is_locked(&plane->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:892
WARNING !drm_modeset_is_locked(&plane->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:892
WARNING !drm_modeset_is_locked(&plane->mutex) failed at 
/usr/ports/graphics/drm-devel-kmod/work/drm-kmod-drm_v5.7.19_3/drivers/gpu/drm/drm_atomic_helper.c:892
                              panic: page fault
cpuid = 5
time = 1645641620
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 
0xfffffe00b478f860
vpanic() at vpanic+0x17f/frame 0xfffffe00b478f8b0
panic() at panic+0x43/frame 0xfffffe00b478f910
trap_fatal() at trap_fatal+0x385/frame 0xfffffe00b478f970
trap_pfault() at trap_pfault+0x4f/frame 0xfffffe00b478f9d0
calltrap() at calltrap+0x8/frame 0xfffffe00b478f9d0
--- trap 0xc, rip = 0xffffffff8066f2c6, rsp = 0xfffffe00b478faa0, rbp = 
0xfffffe00b478fad0 ---
fbd_register() at fbd_register+0xe6/frame 0xfffffe00b478fad0
device_attach() at device_attach+0x3c3/frame 0xfffffe00b478fb20
bus_generic_attach() at bus_generic_attach+0x4b/frame 0xfffffe00b478fb50
lkpi_i2c_add_adapter() at lkpi_i2c_add_adapter+0x5b/frame 0xfffffe00b478fb70
drm_dp_port_set_pdt() at drm_dp_port_set_pdt+0x1e9/frame 0xfffffe00b478fbc0
drm_dp_send_link_address() at drm_dp_send_link_address+0x89a/frame 
0xfffffe00b478fcf0
drm_dp_check_and_send_link_address() at 
drm_dp_check_and_send_link_address+0x27/frame 0xfffffe00b478fd30
drm_dp_mst_link_probe_work() at drm_dp_mst_link_probe_work+0x268/frame 
0xfffffe00b478fde0
linux_work_fn() at linux_work_fn+0xe3/frame 0xfffffe00b478fe40
taskqueue_run_locked() at taskqueue_run_locked+0x181/frame 
0xfffffe00b478fec0
taskqueue_thread_loop() at taskqueue_thread_loop+0xc2/frame 
0xfffffe00b478fef0
fork_exit() at fork_exit+0x7e/frame 0xfffffe00b478ff30
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00b478ff30
--- trap 0xf6165a, rip = 0x88b11ff284f11ff6, rsp = 0x2f8684be23c684b8, 
rbp = 0x93b9a8809ff9a894 ---
KDB: enter: panic