<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Feb 21, 2018 at 6:22 PM, Alex Deucher <span dir="ltr"><<a href="mailto:alexdeucher@gmail.com" target="_blank">alexdeucher@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail-HOEnZb"><div class="gmail-h5">On Wed, Feb 21, 2018 at 7:43 AM, Christian König<br>
<<a href="mailto:christian.koenig@amd.com">christian.koenig@amd.com</a>> wrote:<br>
>> The failed VCE resume (-22) seems to be caused by<br>
>><br>
>>         if (rdev->vce.vcpu_bo == NULL)<br>
>>                 return -EINVAL;<br>
>><br>
>> in radeon_vce.c line 226.<br>
><br>
><br>
> Yeah, you don't seem to have the VCE firmware installed. But as long as you<br>
> don't want to do any advanced video encoding with the hardware we can simply<br>
> ignore that for now.<br>
><br>
>> Any idea where to look from there?<br>
><br>
><br>
> Unfortunately not the slightest.<br>
><br>
> What's a bit suspicious is that the CPU addresses for the fence locations<br>
> look odd:<br>
>><br>
>> [   11.350779] radeon 0001:01:00.0: fence driver on ring 0 use gpu addr<br>
>> 0x0000000080000c00 and cpu addr 0x000000007408d6c9<br>
>> [   11.360274] radeon 0001:01:00.0: fence driver on ring 1 use gpu addr<br>
>> 0x0000000080000c04 and cpu addr 0x0000000013c11aeb<br>
>> [   11.369770] radeon 0001:01:00.0: fence driver on ring 2 use gpu addr<br>
>> 0x0000000080000c08 and cpu addr 0x00000000d4ddd131<br>
>> [   11.379267] radeon 0001:01:00.0: fence driver on ring 3 use gpu addr<br>
>> 0x0000000080000c0c and cpu addr 0x00000000263a4d29<br>
>> [   11.388763] radeon 0001:01:00.0: fence driver on ring 4 use gpu addr<br>
>> 0x0000000080000c10 and cpu addr 0x000000006ceb1503<br>
>> [   11.399277] radeon 0001:01:00.0: fence driver on ring 5 use gpu addr<br>
>> 0x0000000000075a18 and cpu addr 0x000000008935a463<br>
><br>
> But could as well be that we don't correctly print them.<br>
><br>
> Apart from that I don't have any good idea any more why that shouldn't work.<br>
<br>
</div></div>Does your platform properly handle DMA masks?  Most radeon hw only<br>
supports a 40 bit DMA mask.  If there are relevant bits in the upper<br>
bits of the address, they will be lost when the hw tries to use the<br>
address.  On at least some powerpc hw, I believe there is some memory<br>
routing related info in the high bits.<br></blockquote><div><br></div><div>On 4.1 (without the hashing algorithm when printing pointers), The rings are placed thus:</div><div><br></div><div><div>[   11.002673] radeon 0002:01:00.0: fence driver on ring 0 use gpu addr 0x0000000080000c00 and cpu addr 0xc00000007c0c8c00</div><div>[   11.012165] radeon 0002:01:00.0: fence driver on ring 1 use gpu addr 0x0000000080000c04 and cpu addr 0xc00000007c0c8c04</div><div>[   11.021657] radeon 0002:01:00.0: fence driver on ring 2 use gpu addr 0x0000000080000c08 and cpu addr 0xc00000007c0c8c08</div><div>[   11.031152] radeon 0002:01:00.0: fence driver on ring 3 use gpu addr 0x0000000080000c0c and cpu addr 0xc00000007c0c8c0c</div><div>[   11.040644] radeon 0002:01:00.0: fence driver on ring 4 use gpu addr 0x0000000080000c10 and cpu addr 0xc00000007c0c8c10</div><div>[   11.051919] radeon 0002:01:00.0: fence driver on ring 5 use gpu addr 0x0000000000075a18 and cpu addr 0x8000080088db5a18</div></div><div><br></div><div>It's also using bit 63 & 62. So this might be something to look into.</div><div><br></div><div>Bas Vermeulen</div><div><br></div></div></div></div>