[PATCH 0/8] Retry page fault handling for Vega10

Felix Kuehling felix.kuehling at amd.com
Wed Sep 6 21:53:35 UTC 2017


I realized that the drm-next-4.15-wip branch isn't very useful for
testing this, because it has no display support for Vega10 and no KFD
support for Vega10. So you can't test graphics or compute on Vega10 with
this branch. On the other hand, I need to make changes in both KFD and
AMDGPU, so I tried to avoid an amd-internal branch. But it seems until
either DAL or KFD is upstream, it'll have to remain on an AMD-internal
branch (amd-staging-4.12 for now, to be changed soon). Christian, would
this enable any of work you were going to do?

Alex, is this going to make your regular upstreaming more difficult? Or
are you OK with upstreaming KFD changes that have dependencies with
amdgpu changes? Oded, would you be OK with Alex upstreaming KFD changes
along with amdgpu changes? Assuming they have your "Reviewed-by"?

I also haven't got any feedback from LKLM on the addition of the chash
data structure to kernel/lib. I'm considering adding it in
drivers/gpu/drm/amd/chash as an interim step. It can be moved to lib
later, if other components are interested in using it. Any objections?

Regards,
  Felix


On 2017-08-29 06:25 PM, Felix Kuehling wrote:
> Rebased on the public drm-next-4.15-wip. Patch 8 from the WIP patch
> series did not apply at all, because upstream KFD doesn't support
> GPUVM yet.
>
> The "lib: Closed hash table ..." change is updated and the same as
> what I sent to LKML yesterday. Changes are mainly in the way the self
> test is hooked up, Kconfig options and some checkpatch fixes. If it
> takes too long to get accepted upstream, I could add it under
> drivers/gpu/drm/amd/chash in the interim.
>
> This is only compile tested on this branch. I can't do much more
> because the upstream KFD doesn't support Vega10 and GPUVM yet. Someone
> will have to add PASID support for graphics on top of this.
>
> 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
>   lib: Closed hash table with low overhead
>   drm/amdgpu: Track pending retry faults in IH and VM (v2)
>
>  drivers/gpu/drm/Kconfig                           |   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/radeon/radeon_kfd.c               |  31 ++
>  include/linux/chash.h                             | 358 +++++++++++++
>  lib/Kconfig                                       |  24 +
>  lib/Makefile                                      |   2 +
>  lib/chash.c                                       | 622 ++++++++++++++++++++++
>  27 files changed, 1489 insertions(+), 91 deletions(-)
>  create mode 100644 include/linux/chash.h
>  create mode 100644 lib/chash.c
>



More information about the amd-gfx mailing list