<div dir="ltr"><div><div><div>Thanks Oded for the test results.<br><br></div>I'll work on a fix.<br><br></div>Regards,<br></div>Andres<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 9, 2017 at 3:11 PM, Oded Gabbay <span dir="ltr"><<a href="mailto:oded.gabbay@gmail.com" target="_blank">oded.gabbay@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Andres,<br>
<br>
I tried your patches on Kaveri with airlied's drm-next branch.<br>
I used radeon+amdkfd<br>
<br>
The following test failed: KFDQMTest.<wbr>CreateMultipleCpQueues<br>
However, I can't debug it because I don't have the sources of kfdtest.<br>
<br>
In dmesg, I saw the following warning during boot:<br>
WARNING: CPU: 0 PID: 150 at<br>
drivers/gpu/drm/amd/amdkfd/<wbr>kfd_device_queue_manager.c:670<br>
start_cpsch+0xc5/0x220 [amdkfd]<br>
[    4.393796] Modules linked in: hid_logitech_hidpp hid_logitech_dj<br>
hid_generic usbhid hid uas usb_storage amdkfd amd_iommu_v2 radeon(+)<br>
i2c_algo_bit ttm drm_kms_helper syscopyarea ahci sysfillrect sysimgblt<br>
libahci fb_sys_fops drm r8169 mii fjes video<br>
[    4.393811] CPU: 0 PID: 150 Comm: systemd-udevd Not tainted 4.10.0-rc5+ #1<br>
[    4.393811] Hardware name: Gigabyte Technology Co., Ltd. To be<br>
filled by O.E.M./F2A88XM-D3H, BIOS F5 01/09/2014<br>
[    4.393812] Call Trace:<br>
[    4.393818]  dump_stack+0x63/0x90<br>
[    4.393822]  __warn+0xcb/0xf0<br>
[    4.393823]  warn_slowpath_null+0x1d/0x20<br>
[    4.393830]  start_cpsch+0xc5/0x220 [amdkfd]<br>
[    4.393836]  ? initialize_cpsch+0xa0/0xb0 [amdkfd]<br>
[    4.393841]  kgd2kfd_device_init+0x375/<wbr>0x490 [amdkfd]<br>
[    4.393883]  radeon_kfd_device_init+0xaf/<wbr>0xd0 [radeon]<br>
[    4.393911]  radeon_driver_load_kms+0x11e/<wbr>0x1f0 [radeon]<br>
[    4.393933]  drm_dev_register+0x14a/0x200 [drm]<br>
[    4.393946]  drm_get_pci_dev+0x9d/0x160 [drm]<br>
[    4.393974]  radeon_pci_probe+0xb8/0xe0 [radeon]<br>
[    4.393976]  local_pci_probe+0x45/0xa0<br>
[    4.393978]  pci_device_probe+0x103/0x150<br>
[    4.393981]  driver_probe_device+0x2bf/<wbr>0x460<br>
[    4.393982]  __driver_attach+0xdf/0xf0<br>
[    4.393984]  ? driver_probe_device+0x460/<wbr>0x460<br>
[    4.393985]  bus_for_each_dev+0x6c/0xc0<br>
[    4.393987]  driver_attach+0x1e/0x20<br>
[    4.393988]  bus_add_driver+0x1fd/0x270<br>
[    4.393989]  ? 0xffffffffc05c8000<br>
[    4.393991]  driver_register+0x60/0xe0<br>
[    4.393992]  ? 0xffffffffc05c8000<br>
[    4.393993]  __pci_register_driver+0x4c/<wbr>0x50<br>
[    4.394007]  drm_pci_init+0xeb/0x100 [drm]<br>
[    4.394008]  ? 0xffffffffc05c8000<br>
[    4.394031]  radeon_init+0x98/0xb6 [radeon]<br>
[    4.394034]  do_one_initcall+0x53/0x1a0<br>
[    4.394037]  ? __vunmap+0x81/0xd0<br>
[    4.394039]  ? kmem_cache_alloc_trace+0x152/<wbr>0x1c0<br>
[    4.394041]  ? vfree+0x2e/0x70<br>
[    4.394044]  do_init_module+0x5f/0x1ff<br>
[    4.394046]  load_module+0x24cc/0x29f0<br>
[    4.394047]  ? __symbol_put+0x60/0x60<br>
[    4.394050]  ? security_kernel_post_read_<wbr>file+0x6b/0x80<br>
[    4.394052]  SYSC_finit_module+0xdf/0x110<br>
[    4.394054]  SyS_finit_module+0xe/0x10<br>
[    4.394056]  entry_SYSCALL_64_fastpath+<wbr>0x1e/0xad<br>
[    4.394058] RIP: 0033:0x7f9cda77c8e9<br>
[    4.394059] RSP: 002b:00007ffe195d3378 EFLAGS: 00000246 ORIG_RAX:<br>
0000000000000139<br>
[    4.394060] RAX: ffffffffffffffda RBX: 00007f9cdb8dda7e RCX: 00007f9cda77c8e9<br>
[    4.394061] RDX: 0000000000000000 RSI: 00007f9cdac7ce2a RDI: 0000000000000013<br>
[    4.394062] RBP: 00007ffe195d2450 R08: 0000000000000000 R09: 0000000000000000<br>
[    4.394063] R10: 0000000000000013 R11: 0000000000000246 R12: 00007ffe195d245a<br>
[    4.394063] R13: 00007ffe195d1378 R14: 0000563f70cc93b0 R15: 0000563f70cba4d0<br>
[    4.394091] ---[ end trace 9c5af17304d998bb ]---<br>
[    4.394092] Invalid queue enabled by amdgpu: 9<br>
<br>
I suggest you get a Kaveri/Carrizo machine to debug these issues.<br>
<br>
Until that, I don't think we should merge this patch-set.<br>
<span class="HOEnZb"><font color="#888888"><br>
Oded<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Wed, Feb 8, 2017 at 9:47 PM, Andres Rodriguez <<a href="mailto:andresx7@gmail.com">andresx7@gmail.com</a>> wrote:<br>
> Thank you Oded.<br>
><br>
> - Andres<br>
><br>
><br>
> On 2017-02-08 02:32 PM, Oded Gabbay wrote:<br>
>><br>
>> On Wed, Feb 8, 2017 at 6:23 PM, Andres Rodriguez <<a href="mailto:andresx7@gmail.com">andresx7@gmail.com</a>><br>
>> wrote:<br>
>>><br>
>>> Hey Felix,<br>
>>><br>
>>> Thanks for the pointer to the ROCm mqd commit. I like that the<br>
>>> workarounds<br>
>>> are easy to spot. I'll add that to a new patch series I'm working on for<br>
>>> some bug-fixes for perf being lower on pipes other than pipe 0.<br>
>>><br>
>>> I haven't tested this yet on kaveri/carrizo. I'm hoping someone with the<br>
>>> HW<br>
>>> will be able to give it a go. I put in a few small hacks to get KFD to<br>
>>> boot<br>
>>> but do nothing on polaris10.<br>
>>><br>
>>> Regards,<br>
>>> Andres<br>
>>><br>
>>><br>
>>> On 2017-02-06 03:20 PM, Felix Kuehling wrote:<br>
>>>><br>
>>>> Hi Andres,<br>
>>>><br>
>>>> Thank you for tackling this task. It's more involved than I expected,<br>
>>>> mostly because I didn't have much awareness of the MQD management in<br>
>>>> amdgpu.<br>
>>>><br>
>>>> I made one comment in a separate message about the unified MQD commit<br>
>>>> function, if you want to bring that more in line with our latest ROCm<br>
>>>> release on github.<br>
>>>><br>
>>>> Also, were you able to test the upstream KFD with your changes on a<br>
>>>> Kaveri or Carrizo?<br>
>>>><br>
>>>> Regards,<br>
>>>>    Felix<br>
>>>><br>
>>>><br>
>>>> On 17-02-03 11:51 PM, Andres Rodriguez wrote:<br>
>>>>><br>
>>>>> The current queue/pipe split policy is for amdgpu to take the first<br>
>>>>> pipe<br>
>>>>> of<br>
>>>>> MEC0 and leave the rest for amdkfd to use. This policy is taken as an<br>
>>>>> assumption in a few areas of the implementation.<br>
>>>>><br>
>>>>> This patch series aims to allow for flexible/tunable queue/pipe split<br>
>>>>> policies<br>
>>>>> between kgd and kfd. It also updates the queue/pipe split policy to one<br>
>>>>> that<br>
>>>>> allows better compute app concurrency for both drivers.<br>
>>>>><br>
>>>>> In the process some duplicate code and hardcoded constants were<br>
>>>>> removed.<br>
>>>>><br>
>>>>> Any suggestions or feedback on improvements welcome.<br>
>>>>><br>
>>> ______________________________<wbr>_________________<br>
>>> amd-gfx mailing list<br>
>>> <a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><br>
>>> <a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/amd-gfx</a><br>
>><br>
>> Hi Andres,<br>
>> I will try to find sometime to test it on my Kaveri machine.<br>
>><br>
>> Oded<br>
><br>
><br>
</div></div></blockquote></div><br></div>