Hi Felix, 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. Oded On Aug 26, 2017 09:19, "Felix Kuehling" <Felix.Kuehling at amd.com> wrote: > This is based on amd-kfd-staging, because that's easier for me to test. > I'm planning to port to amd-staging-4.x for submission upstream. > > With this patch series, I'm able to turn retry faults on and handle the > interrupt storm from VM faults. Only the first VM fault interrupt per > process and address gets handled the usual way. Retry interruptr are > filtered in a new prescreening stage in amdgpu_ih_process. > > Pending faults are tracked in a hash table in IH to detect retry faults > and a FIFO in the VM for later processing. > > Looking up the VM from the fault interrupt depends on the PASID. > Currently only KFD VMs have proper PASIDs. > > TODO (need some help with these): > * Allocate PASIDs for graphics contexts > * Setup VMID-PASID mapping during graphics command submission > * Confirm that graphics page faults have the correct PASID in the IV > > Once that's done, we should have a foundation to start working on HMM > and proper SVM memory management with demand paging. > > Felix Kuehling (9): > drm/amdgpu: Fix error handling in amdgpu_vm_init > drm/amdgpu: Add PASID management > drm/radeon: Add PASID manager for KFD > drm/amdkfd: Separate doorbell allocation from PASID > drm/amdkfd: Use PASID manager from KGD > drm/amd: Set the PASID for KFD VMs > drm/amdgpu: Add prescreening stage in IH processing > lib: Closed hash table with low overhead > drm/amdgpu: Track pending retry faults in IH and VM > > drivers/gpu/drm/Kconfig | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 + > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 3 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 2 + > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 2 + > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 2 + > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 6 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 82 ++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h | 12 + > drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 88 +++- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 21 +- > drivers/gpu/drm/amd/amdgpu/cik_ih.c | 14 + > drivers/gpu/drm/amd/amdgpu/cz_ih.c | 14 + > drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 14 + > drivers/gpu/drm/amd/amdgpu/si_ih.c | 14 + > drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 14 + > drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 90 ++++ > drivers/gpu/drm/amd/amdkfd/kfd_device.c | 18 +- > drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 48 +- > drivers/gpu/drm/amd/amdkfd/kfd_module.c | 6 - > drivers/gpu/drm/amd/amdkfd/kfd_pasid.c | 84 ++-- > drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 10 +- > drivers/gpu/drm/amd/amdkfd/kfd_process.c | 8 +- > drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 8 +- > drivers/gpu/drm/radeon/radeon_kfd.c | 36 +- > include/linux/chash.h | 349 +++++++++++++++ > lib/Kconfig | 8 + > lib/Makefile | 2 + > lib/chash.c | 521 > ++++++++++++++++++++++ > 30 files changed, 1376 insertions(+), 105 deletions(-) > create mode 100644 include/linux/chash.h > create mode 100644 lib/chash.c > > -- > 2.7.4 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx > -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20170828/2abaf103/attachment.html>