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