<div dir="auto">Hi Felix, <div dir="auto">I'm currently on vacation and I will return at the end of the week, so I will not be able to review the patches until then. </div><div dir="auto"><br></div><div dir="auto">Oded</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Aug 26, 2017 09:19, "Felix Kuehling" <<a href="mailto:Felix.Kuehling@amd.com">Felix.Kuehling@amd.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This is based on amd-kfd-staging, because that's easier for me to test.<br>
I'm planning to port to amd-staging-4.x for submission upstream.<br>
<br>
With this patch series, I'm able to turn retry faults on and handle the<br>
interrupt storm from VM faults. Only the first VM fault interrupt per<br>
process and address gets handled the usual way. Retry interruptr are<br>
filtered in a new prescreening stage in amdgpu_ih_process.<br>
<br>
Pending faults are tracked in a hash table in IH to detect retry faults<br>
and a FIFO in the VM for later processing.<br>
<br>
Looking up the VM from the fault interrupt depends on the PASID.<br>
Currently only KFD VMs have proper PASIDs.<br>
<br>
TODO (need some help with these):<br>
* Allocate PASIDs for graphics contexts<br>
* Setup VMID-PASID mapping during graphics command submission<br>
* Confirm that graphics page faults have the correct PASID in the IV<br>
<br>
Once that's done, we should have a foundation to start working on HMM<br>
and proper SVM memory management with demand paging.<br>
<br>
Felix Kuehling (9):<br>
drm/amdgpu: Fix error handling in amdgpu_vm_init<br>
drm/amdgpu: Add PASID management<br>
drm/radeon: Add PASID manager for KFD<br>
drm/amdkfd: Separate doorbell allocation from PASID<br>
drm/amdkfd: Use PASID manager from KGD<br>
drm/amd: Set the PASID for KFD VMs<br>
drm/amdgpu: Add prescreening stage in IH processing<br>
lib: Closed hash table with low overhead<br>
drm/amdgpu: Track pending retry faults in IH and VM<br>
<br>
drivers/gpu/drm/Kconfig | 1 +<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu.h | 2 +<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu_amdkfd.h | 3 +-<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu_amdkfd_gfx_v7.c | 2 +<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu_amdkfd_gfx_v8.c | 2 +<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu_amdkfd_gfx_v9.c | 2 +<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu_amdkfd_gpuvm.c | 6 +-<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu_ih.c | 82 ++++<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu_ih.h | 12 +<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu_kms.c | 2 +-<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu_vm.c | 88 +++-<br>
drivers/gpu/drm/amd/amdgpu/<wbr>amdgpu_vm.h | 21 +-<br>
drivers/gpu/drm/amd/amdgpu/<wbr>cik_ih.c | 14 +<br>
drivers/gpu/drm/amd/amdgpu/cz_<wbr>ih.c | 14 +<br>
drivers/gpu/drm/amd/amdgpu/<wbr>iceland_ih.c | 14 +<br>
drivers/gpu/drm/amd/amdgpu/si_<wbr>ih.c | 14 +<br>
drivers/gpu/drm/amd/amdgpu/<wbr>tonga_ih.c | 14 +<br>
drivers/gpu/drm/amd/amdgpu/<wbr>vega10_ih.c | 90 ++++<br>
drivers/gpu/drm/amd/amdkfd/<wbr>kfd_device.c | 18 +-<br>
drivers/gpu/drm/amd/amdkfd/<wbr>kfd_doorbell.c | 48 +-<br>
drivers/gpu/drm/amd/amdkfd/<wbr>kfd_module.c | 6 -<br>
drivers/gpu/drm/amd/amdkfd/<wbr>kfd_pasid.c | 84 ++--<br>
drivers/gpu/drm/amd/amdkfd/<wbr>kfd_priv.h | 10 +-<br>
drivers/gpu/drm/amd/amdkfd/<wbr>kfd_process.c | 8 +-<br>
drivers/gpu/drm/amd/include/<wbr>kgd_kfd_interface.h | 8 +-<br>
drivers/gpu/drm/radeon/radeon_<wbr>kfd.c | 36 +-<br>
include/linux/chash.h | 349 +++++++++++++++<br>
lib/Kconfig | 8 +<br>
lib/Makefile | 2 +<br>
lib/chash.c | 521 ++++++++++++++++++++++<br>
30 files changed, 1376 insertions(+), 105 deletions(-)<br>
create mode 100644 include/linux/chash.h<br>
create mode 100644 lib/chash.c<br>
<br>
--<br>
2.7.4<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>
</blockquote></div></div>