WARNING: CPU: 4 PID: 863 at include/drm/drm_crtc.h:1577 drm_helper_choose_encoder_dpms+0x88/0x90()
Daniel Vetter
daniel at ffwll.ch
Wed Sep 23 00:25:23 PDT 2015
On Tue, Sep 22, 2015 at 04:54:54PM -0400, Alex Deucher wrote:
> On Tue, Sep 22, 2015 at 4:21 PM, Borislav Petkov <bp at alien8.de> wrote:
> > Hi Alex,
> >
> > On Tue, Sep 22, 2015 at 03:58:03PM -0400, Alex Deucher wrote:
> >> What system is this?
> >
> > my workstation - an
> >
> > "To be filled by O.E.M. To be filled by O.E.M./M5A97 EVO R2.0, BIOS 1503 01/16/2013"
> >
> > you gotta love the "To be filled" crap. In any case, it is an ASUS M5A97
> > EVO R2.0. RD890 chip AFAICT.
> >
> >> What GPU are you using?
> >
> > RV635. Here's some dmesg:
> >
> > [ 6.489016] [drm] initializing kernel modesetting (RV635 0x1002:0x9598 0x1043:0x01DA).
> > [ 7.509177] radeon 0000:01:00.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
> > [ 7.518010] radeon 0000:01:00.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF
> > [ 7.525724] [drm] Detected VRAM RAM=512M, BAR=256M
> > [ 7.530608] [drm] RAM width 128bits DDR
> > [ 7.535168] [TTM] Zone kernel: Available graphics memory: 8132226 kiB
> > [ 7.541779] [TTM] Zone dma32: Available graphics memory: 2097152 kiB
> > [ 7.548420] [TTM] Initializing pool allocator
> > [ 7.552896] [TTM] Initializing DMA pool allocator
> > [ 7.558176] [drm] radeon: 512M of VRAM memory ready
> > [ 7.563131] [drm] radeon: 512M of GTT memory ready.
> > [ 7.568151] [drm] Loading RV635 Microcode
> > [ 7.577382] [drm] Internal thermal controller without fan control
> > [ 7.584349] [drm] radeon: power management initialized
> > [ 7.590443] [drm] GART: num cpu pages 131072, num gpu pages 131072
> > [ 7.597266] [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
> > [ 7.624386] [drm] PCIE GART of 512M enabled (table at 0x0000000000254000).
> > [ 7.631544] radeon 0000:01:00.0: WB enabled
> > [ 7.635794] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000020000c00 and cpu addr 0xffff880427ef7c00
> > [ 7.647039] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x00000000000521d0 and cpu addr 0xffffc900008121d0
> > [ 7.657924] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> > [ 7.664601] [drm] Driver supports precise vblank timestamp query.
> > [ 7.670780] radeon 0000:01:00.0: radeon: MSI limited to 32-bit
> > [ 7.676801] radeon 0000:01:00.0: radeon: using MSI.
> > [ 7.681863] [drm] radeon: irq initialized.
> > [ 7.717757] [drm] ring test on 0 succeeded in 0 usecs
> > [ 7.897466] [drm] ring test on 5 succeeded in 1 usecs
> > [ 7.902585] [drm] UVD initialized successfully.
> > [ 7.908108] [drm] ib test on ring 0 succeeded in 0 usecs
> > [ 8.558968] [drm] ib test on ring 5 succeeded
> > [ 8.568734] [drm] Radeon Display Connectors
> > [ 8.573005] [drm] Connector 0:
> > [ 8.576189] [drm] DVI-I-1
> > [ 8.579062] [drm] HPD1
> > [ 8.581657] [drm] DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
> > [ 8.589172] [drm] Encoders:
> > [ 8.592234] [drm] DFP1: INTERNAL_UNIPHY
> > [ 8.596492] [drm] CRT2: INTERNAL_KLDSCP_DAC2
> > [ 8.601182] [drm] Connector 1:
> > [ 8.604302] [drm] DIN-1
> > [ 8.607012] [drm] Encoders:
> > [ 8.610043] [drm] TV1: INTERNAL_KLDSCP_DAC2
> > [ 8.614642] [drm] Connector 2:
> > [ 8.617760] [drm] DVI-I-2
> > [ 8.620621] [drm] HPD2
> > [ 8.623226] [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
> > [ 8.630719] [drm] Encoders:
> > [ 8.633749] [drm] CRT1: INTERNAL_KLDSCP_DAC1
> > [ 8.638436] [drm] DFP2: INTERNAL_KLDSCP_LVTMA
> > [ 8.719815] [drm] fb mappable at 0xC0355000
> > [ 8.724089] [drm] vram apper at 0xC0000000
> > [ 8.728243] [drm] size 9216000
> > [ 8.731371] [drm] fb depth is 24
> > [ 8.734664] [drm] pitch is 7680
> > [ 8.739009] fbcon: radeondrmfb (fb0) is primary device
> > [ 8.802887] Console: switching to colour frame buffer device 240x75
> > [ 8.818487] radeon 0000:01:00.0: fb0: radeondrmfb frame buffer device
> > [ 8.824948] radeon 0000:01:00.0: registered panic notifier
> > [ 8.846452] [drm] Initialized radeon 2.42.0 20080528 for 0000:01:00.0 on minor 0
> >
> >> Can you bisect?
> >
> > It is my workstation so it will take longer but I'll try.
> >
> > If you can think of some particular commits I should try, let me know.
>
> Sorry, I can't think of anything off hand. I suspect it was some
> change or cleanup in the core drm code.
The locking check is new, but I was only adding locking checks, not yet
reworking the locking itself. So the backtrace is likely (but not 100%
guaranteed) a red herring.
Strange thing is that I've tested this on a radeon over here and I don't
see this backtrace ... wut. Below diff should appease the backtraces at
least.
-Daniel
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
index d8319dae8358..9f05de73ae97 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -1734,9 +1734,11 @@ int radeon_resume_kms(struct drm_device *dev, bool resume, bool fbcon)
if (fbcon) {
drm_helper_resume_force_mode(dev);
/* turn on display hw */
+ drm_modeset_lock_all(dev);
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
}
+ drm_modeset_unlock_all(dev);
}
drm_kms_helper_poll_enable(dev);
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list