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