Commit f5d9b7f0f9 (fix r600_enable_sclk_control()) causes kexec issues

Joshua C. joshuacov at gmail.com
Mon Jul 29 09:14:16 PDT 2013


2013/7/29 Alex Deucher <alexdeucher at gmail.com>:
> On Mon, Jul 29, 2013 at 10:09 AM, Markus Trippelsdorf
> <markus at trippelsdorf.de> wrote:
>> On 2013.07.29 at 09:58 -0400, Alex Deucher wrote:
>>> On Mon, Jul 29, 2013 at 3:51 AM, Markus Trippelsdorf
>>> <markus at trippelsdorf.de> wrote:
>>> > On my test machine Xorg doesn't start anymore when I kexec into a
>>> > 3.11.0-rc3 kernel.
>>>
>>> With kexec, dpm doesn't get torn down properly which can result in a
>>> bad hardware state when the driver loads again.  Does the attached
>>> patch help?  It attempts to disable dpm at startup in case it wasn't
>>> torn down properly previously.
>>
>> dpm initialization now works, but unfortunately GPU acceleration still gets
>> disabled:
>
> Stupid kexec complicates things.  We need to make sure dpm is torn
> down before we init the rest of the GPU, but dpm needs get initialized
> later in the init process since it depends on certain other state from
> the driver.  I need to think about this for a bit.  I'm not sure of a
> good way to handle this.
>
> Alex
>
>>
>> [drm] Initialized drm 1.1.0 20060810                                                                                                                                [135/1104]
>> [drm] radeon kernel modesetting enabled.
>> [drm] initializing kernel modesetting (RS780 0x1002:0x9614 0x1043:0x834D).
>> [drm] register mmio base: 0xFBEE0000
>> [drm] register mmio size: 65536
>> ATOM BIOS: 113
>> radeon 0000:01:05.0: VRAM: 128M 0x00000000C0000000 - 0x00000000C7FFFFFF (128M used)
>> radeon 0000:01:05.0: GTT: 512M 0x00000000A0000000 - 0x00000000BFFFFFFF
>> [drm] Detected VRAM RAM=128M, BAR=128M
>> [drm] RAM width 32bits DDR
>> [TTM] Zone  kernel: Available graphics memory: 4082356 kiB
>> [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
>> [TTM] Initializing pool allocator
>> [TTM] Initializing DMA pool allocator
>> [drm] radeon: 128M of VRAM memory ready
>> [drm] radeon: 512M of GTT memory ready.
>> [drm] GART: num cpu pages 131072, num gpu pages 131072
>> [drm] Loading RS780 Microcode
>> [drm] PCIE GART of 512M enabled (table at 0x00000000C0040000).
>> radeon 0000:01:05.0: WB enabled
>> radeon 0000:01:05.0: fence driver on ring 0 use gpu addr 0x00000000a0000c00 and cpu addr 0xffff880215c30c00
>> radeon 0000:01:05.0: fence driver on ring 3 use gpu addr 0x00000000a0000c0c and cpu addr 0xffff880215c30c0c
>> [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
>> [drm] Driver supports precise vblank timestamp query.
>> [drm] radeon: irq initialized.
>> radeon 0000:01:05.0: setting latency timer to 64
>> [drm] ring test on 0 succeeded in 1 usecs
>> [drm:r600_dma_ring_test] *ERROR* radeon: ring 3 test failed (0xCAFEDEAD)
>> radeon 0000:01:05.0: disabling GPU acceleration
>> radeon 0000:01:05.0: ffff8802161cfc00 unpin not necessary
>> [drm] Radeon Display Connectors
>> [drm] Connector 0:
>> [drm]   VGA-1
>> [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
>> [drm]   Encoders:
>> [drm]     CRT1: INTERNAL_KLDSCP_DAC1
>> [drm] Connector 1:
>> [drm]   DVI-D-1
>> [drm]   HPD3
>> [drm]   DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
>> [drm]   Encoders:
>> [drm]     DFP3: INTERNAL_KLDSCP_LVTMA
>> == power state 0 ==
>>         ui class: none
>>         internal class: boot
>>         caps: video
>>         uvd    vclk: 0 dclk: 0
>>                 power level 0    sclk: 50000 vddc_index: 2
>>                 power level 1    sclk: 50000 vddc_index: 2
>>         status: c r b
>> == power state 1 ==
>>         ui class: performance
>>         internal class: none
>>         caps: video
>>         uvd    vclk: 0 dclk: 0
>>                 power level 0    sclk: 50000 vddc_index: 1
>>                 power level 1    sclk: 70000 vddc_index: 2
>>         status:
>> == power state 2 ==
>>         ui class: none
>>         internal class: uvd
>>         caps: video
>>         uvd    vclk: 53300 dclk: 40000
>>                 power level 0    sclk: 50000 vddc_index: 1
>>                 power level 1    sclk: 50000 vddc_index: 1
>>         status:
>> switching from power state:
>>         ui class: none
>>         internal class: boot
>>         caps: video
>>         uvd    vclk: 0 dclk: 0
>>                 power level 0    sclk: 50000 vddc_index: 2
>>                 power level 1    sclk: 50000 vddc_index: 2
>>         status: c b
>> switching to power state:
>>         ui class: performance
>>         internal class: none
>>         caps: video
>>         uvd    vclk: 0 dclk: 0
>>                 power level 0    sclk: 50000 vddc_index: 1
>>                 power level 1    sclk: 70000 vddc_index: 2
>>         status: r
>> [drm] radeon: dpm initialized
>> [drm] fb mappable at 0xF0142000
>> [drm] vram apper at 0xF0000000
>> [drm] size 7299072
>> [drm] fb depth is 24
>> [drm]    pitch is 6912
>> fbcon: radeondrmfb (fb0)
>>
>> --
>> Markus
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel

This error message seems similar to mine "[drm:r600_uvd_ring_test]
*ERROR* radeon: ring 5 test failed (0xCAFEDEAD)" Bugzilla:
https://bugs.freedesktop.org/show_bug.cgi?id=67276 In my case I blame
another commit for this. Are these bugs related?

-- 
--joshua


More information about the dri-devel mailing list