All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/9] WIP: Retry page fault handling for Vega10
@ 2017-08-26  7:19 Felix Kuehling
       [not found] ` <1503731949-22742-1-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 23+ messages in thread
From: Felix Kuehling @ 2017-08-26  7:19 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Felix Kuehling

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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2017-08-28 13:36 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-26  7:19 [PATCH 0/9] WIP: Retry page fault handling for Vega10 Felix Kuehling
     [not found] ` <1503731949-22742-1-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2017-08-26  7:19   ` [PATCH 1/9] drm/amdgpu: Fix error handling in amdgpu_vm_init Felix Kuehling
     [not found]     ` <1503731949-22742-2-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2017-08-26 13:22       ` Christian König
2017-08-28  2:51       ` zhoucm1
2017-08-26  7:19   ` [PATCH 2/9] drm/amdgpu: Add PASID management Felix Kuehling
     [not found]     ` <1503731949-22742-3-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2017-08-26 13:27       ` Christian König
     [not found]         ` <994b23cd-67b3-4498-2c2b-d4fc2ea68be7-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-08-26 14:41           ` Kuehling, Felix
2017-08-28  3:06       ` zhoucm1
     [not found]         ` <c730cbbc-919c-23a5-8d10-3ab5fbfa3543-5C7GfCeVMHo@public.gmane.org>
2017-08-28  6:45           ` Christian König
     [not found]             ` <8e5428ef-5419-6241-369f-a48e63b77934-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-08-28  7:15               ` zhoucm1
     [not found]                 ` <c593059f-548d-340c-6bd5-7650b8830aad-5C7GfCeVMHo@public.gmane.org>
2017-08-28 13:26                   ` Kuehling, Felix
2017-08-26  7:19   ` [PATCH 3/9] drm/radeon: Add PASID manager for KFD Felix Kuehling
     [not found]     ` <1503731949-22742-4-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2017-08-26 13:27       ` Christian König
2017-08-26  7:19   ` [PATCH 4/9] drm/amdkfd: Separate doorbell allocation from PASID Felix Kuehling
2017-08-26  7:19   ` [PATCH 5/9] drm/amdkfd: Use PASID manager from KGD Felix Kuehling
2017-08-26  7:19   ` [PATCH 6/9] drm/amd: Set the PASID for KFD VMs Felix Kuehling
2017-08-26  7:19   ` [PATCH 7/9] drm/amdgpu: Add prescreening stage in IH processing Felix Kuehling
2017-08-26  7:19   ` [PATCH 8/9] lib: Closed hash table with low overhead Felix Kuehling
     [not found]     ` <1503731949-22742-9-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2017-08-26 13:32       ` Christian König
2017-08-26  7:19   ` [PATCH 9/9] drm/amdgpu: Track pending retry faults in IH and VM Felix Kuehling
     [not found]     ` <1503731949-22742-10-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2017-08-26 13:36       ` Christian König
2017-08-27 22:22   ` [PATCH 0/9] WIP: Retry page fault handling for Vega10 Oded Gabbay
     [not found]     ` <CAFCwf10G+4ra9UD6upxaBc5FwSu4efB9oLKKYSZHcHQ-w9TZgQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-08-28 13:36       ` Kuehling, Felix

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.