Commit f5d9b7f0f9 (fix r600_enable_sclk_control()) causes kexec issues

Alex Deucher alexdeucher at gmail.com
Mon Jul 29 10:58:57 PDT 2013


On Mon, Jul 29, 2013 at 12:14 PM, Joshua C. <joshuacov at gmail.com> wrote:
> 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?

I doubt it's related at all.  You issue seems to be an initialization
problem with UVD.

Alex


More information about the dri-devel mailing list