Thanks for the reviews. I rebased this on amd-staging-drm-next, retested and submitted. Christian, do you want to do some graphics PASID and VMFault work on top of that? I think I'll be working on more KFD upstreaming this week and maybe look at this subject again next week. Regards, Â Felix On 2017-09-12 07:05 PM, Felix Kuehling wrote: > Rebased on adeucher/amd-staging-4.13 and tested on Vega10 (graphics) > and Kaveri (KFD). Meaningful graphics tests with retry faults enabled > will only be possible after PASID support is added to amdgpu_cs. > > The chash table was moved to drivers/gpu/drm/amd/lib for now but is > ready to move to lib if needed. I have not got any feedback on LKLM > and I don't want that to hold up the patch series. > > TODO: > * Finish upstreaming KFD > * 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 > > > Felix Kuehling (8): > 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/amdgpu: Add prescreening stage in IH processing > drm/amd: Closed hash table with low overhead > drm/amdgpu: Track pending retry faults in IH and VM (v2) > > drivers/gpu/drm/Kconfig | 3 + > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 + > 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_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 | 84 ++- > 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 | 7 - > drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 50 +- > drivers/gpu/drm/amd/amdkfd/kfd_module.c | 6 - > drivers/gpu/drm/amd/amdkfd/kfd_pasid.c | 90 ++-- > drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 10 +- > drivers/gpu/drm/amd/amdkfd/kfd_process.c | 6 + > drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 6 + > drivers/gpu/drm/amd/include/linux/chash.h | 358 +++++++++++++ > drivers/gpu/drm/amd/lib/Kconfig | 27 + > drivers/gpu/drm/amd/lib/Makefile | 11 + > drivers/gpu/drm/amd/lib/chash.c | 622 ++++++++++++++++++++++ > drivers/gpu/drm/radeon/radeon_kfd.c | 31 ++ > 28 files changed, 1504 insertions(+), 91 deletions(-) > create mode 100644 drivers/gpu/drm/amd/include/linux/chash.h > create mode 100644 drivers/gpu/drm/amd/lib/Kconfig > create mode 100644 drivers/gpu/drm/amd/lib/Makefile > create mode 100644 drivers/gpu/drm/amd/lib/chash.c >