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@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);