On Mon, Jul 29, 2013 at 11:50 AM, Eric W. Biederman
<ebiederm at xmission.com> wrote:
>
>
> Alex Deucher <alexdeucher at gmail.com> wrote:
>>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.
>
> You might just want to implement a shutdown method that cleans things up 
> properly.   At least as a first pass until you worry about things like kexec 
> on panic.
>
> Or can you not shutdown the graphics stack on reboot because of the need to 
> display the kernels shutdown progress?

Does kexec actually call this shutdown method?  The driver implements
appropriate clean-up measures if it's shutdown properly.

Alex


>
> Eric
>
>>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
>

Reply via email to