All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/25] Add KFD GPUVM support for dGPUs
@ 2018-01-27  1:09 Felix Kuehling
       [not found] ` <1517015381-1080-1-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 43+ messages in thread
From: Felix Kuehling @ 2018-01-27  1:09 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	oded.gabbay-Re5JQEeQqe8AvxtiuMwx3w
  Cc: Felix Kuehling

I split this into an AMDGPU and AMDKFD part. The bigger patches that
add lots of new code are not cherry-picked and squashed. Instead I
copied, reorganized and cleaned up the code by hand and then split it
into some semblance of a sensible history. I acknowledged major
contributors with signed-off-by lines but didn't list everyone who
ever touched that code (would probably be most of the team).

I pushed an updated Thunk (rebased on ROCm 1.7) that works with this
KFD update. Most testing was done on Fiji with KFDTest (Yong started
working on open-sourcing it). I was also able to run the OpenCL
version of SHOC, though most sub-tests still fail.

KFDTest can manage VRAM and system memory, submit shader dispatches,
receive events. I haven't tested multi-GPU yet, but in theory that
should also work, with system memory buffers shared between multiple
GPUs.

The big missing piece at this point is support for userptr memory
(user-allocated memory mapped for GPU access). That's giong to be my
next patch series that should enable a much wider range of real-world
applications.

AMDGPU:
Patches 1-5 are minor cleanups and fixes
Patches 6-10 add and implement KFD->KGD interfaces for GPUVM

AMDKFD:
Patches 11-13 are minor cleanups and fixes
Patches 14-25 add all the GPUVM memory management functionality

Felix Kuehling (22):
  drm/amdgpu: remove useless BUG_ONs
  drm/amdgpu: Fix header file dependencies
  drm/amdgpu: Fix wrong mask in get_atc_vmid_pasid_mapping_pasid
  drm/amdgpu: Remove unused kfd2kgd interface
  drm/amdgpu: Add KFD eviction fence
  drm/amdgpu: Update kgd2kfd_shared_resources for dGPU support
  drm/amdgpu: add amdgpu_sync_clone
  drm/amdgpu: Add GPUVM memory management functions for KFD
  drm/amdgpu: Add submit IB function for KFD
  drm/amdkfd: Add missing #ifdef CONFIG_AMD_IOMMU_V2 guard
  drm/amdkfd: Use per-device sched_policy
  drm/amdkfd: Add GPUVM virtual address space to PDD
  drm/amdkfd: Implement KFD process eviction/restore
  uapi: Fix type used in ioctl parameter structures
  drm/amdkfd: Remove limit on number of GPUs
  drm/amdkfd: Aperture setup for dGPUs
  drm/amdkfd: Add per-process IDR for buffer handles
  drm/amdkfd: Allocate CWSR trap handler memory for dGPUs
  drm/amdkfd: Add TC flush on VMID deallocation for Hawaii
  drm/amdkfd: Add ioctls for GPUVM memory management
  drm/amdkfd: Kmap event page for dGPUs
  drm/amdkfd: Add module option for testing large-BAR functionality

Harish Kasiviswanathan (1):
  drm/amdkfd: Remove unaligned memory access

Oak Zeng (1):
  drm/amdkfd: Populate DRM render device minor

Yong Zhao (1):
  drm/amdgpu: Replace kgd_mem with amdgpu_bo for kernel pinned gtt mem

 drivers/gpu/drm/amd/amdgpu/Makefile                |    2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c         |  127 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h         |  115 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c   |  196 +++
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c  |   80 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c  |   82 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c   | 1500 ++++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c         |    4 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h         |    2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h           |    6 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c           |   53 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.h           |    1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c            |   25 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h             |    1 +
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c           |  484 +++++++
 drivers/gpu/drm/amd/amdkfd/kfd_crat.c              |    3 +
 drivers/gpu/drm/amd/amdkfd/kfd_device.c            |   65 +-
 .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c  |  290 +++-
 .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h  |    9 +
 drivers/gpu/drm/amd/amdkfd/kfd_events.c            |   31 +-
 drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c       |   59 +-
 drivers/gpu/drm/amd/amdkfd/kfd_module.c            |    7 +
 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c    |   37 +
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h              |   79 +-
 drivers/gpu/drm/amd/amdkfd/kfd_process.c           |  490 ++++++-
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c          |    4 +
 drivers/gpu/drm/amd/amdkfd/kfd_topology.h          |    1 +
 drivers/gpu/drm/amd/include/kgd_kfd_interface.h    |  101 +-
 include/uapi/linux/kfd_ioctl.h                     |   87 +-
 29 files changed, 3811 insertions(+), 130 deletions(-)
 create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.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] 43+ messages in thread
* [PATCH 00/25] Add KFD GPUVM support for dGPUs v2
@ 2018-02-07  1:32 Felix Kuehling
       [not found] ` <1517967174-21709-1-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 43+ messages in thread
From: Felix Kuehling @ 2018-02-07  1:32 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	oded.gabbay-Re5JQEeQqe8AvxtiuMwx3w
  Cc: Felix Kuehling

Changes since v1:
* Rebased
* Several fixes
* Conditional IOMMU change carried over from previous patch series and updated

AMDGPU:
Patches 1-5 are minor cleanups and fixes
Patches 6-10 add and implement KFD->KGD interfaces for GPUVM

AMDKFD:
Patch 11: Make IOMMU conditional (carried over from previous patch series)
Patch 12-13: small fixes
Patches 14-25 add all the GPUVM memory management functionality

Felix Kuehling (22):
  drm/amdgpu: remove useless BUG_ONs
  drm/amdgpu: Fix header file dependencies
  drm/amdgpu: Fix wrong mask in get_atc_vmid_pasid_mapping_pasid
  drm/amdgpu: Remove unused kfd2kgd interface
  drm/amdgpu: Add KFD eviction fence
  drm/amdgpu: Update kgd2kfd_shared_resources for dGPU support
  drm/amdgpu: add amdgpu_sync_clone
  drm/amdgpu: Add GPUVM memory management functions for KFD
  drm/amdgpu: Add submit IB function for KFD
  drm/amdkfd: Centralize IOMMUv2 code and make it conditional
  drm/amdkfd: Use per-device sched_policy
  drm/amdkfd: Add GPUVM virtual address space to PDD
  drm/amdkfd: Implement KFD process eviction/restore
  uapi: Fix type used in ioctl parameter structures
  drm/amdkfd: Remove limit on number of GPUs
  drm/amdkfd: Aperture setup for dGPUs
  drm/amdkfd: Add per-process IDR for buffer handles
  drm/amdkfd: Allocate CWSR trap handler memory for dGPUs
  drm/amdkfd: Add TC flush on VMID deallocation for Hawaii
  drm/amdkfd: Add ioctls for GPUVM memory management
  drm/amdkfd: Kmap event page for dGPUs
  drm/amdkfd: Add module option for testing large-BAR functionality

Harish Kasiviswanathan (1):
  drm/amdkfd: Remove unaligned memory access

Oak Zeng (1):
  drm/amdkfd: Populate DRM render device minor

Yong Zhao (1):
  drm/amdgpu: Replace kgd_mem with amdgpu_bo for kernel pinned gtt mem

 drivers/gpu/drm/amd/amdgpu/Makefile                |    2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c         |  128 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h         |  112 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c   |  179 +++
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c  |   80 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c  |   82 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c   | 1501 ++++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c         |    4 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h         |    2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h           |    6 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c           |   56 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.h           |    1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c            |   25 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h             |    1 +
 drivers/gpu/drm/amd/amdkfd/Kconfig                 |    2 +-
 drivers/gpu/drm/amd/amdkfd/Makefile                |    4 +
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c           |  484 +++++++
 drivers/gpu/drm/amd/amdkfd/kfd_crat.c              |   17 +-
 drivers/gpu/drm/amd/amdkfd/kfd_device.c            |  192 ++-
 .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c  |  288 +++-
 .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h  |    9 +
 drivers/gpu/drm/amd/amdkfd/kfd_events.c            |   34 +-
 drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c       |   59 +-
 drivers/gpu/drm/amd/amdkfd/kfd_iommu.c             |  356 +++++
 drivers/gpu/drm/amd/amdkfd/kfd_iommu.h             |   78 +
 drivers/gpu/drm/amd/amdkfd/kfd_module.c            |    7 +
 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c   |    9 +-
 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c    |    6 +-
 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c    |   37 +
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h              |   91 +-
 drivers/gpu/drm/amd/amdkfd/kfd_process.c           |  599 ++++++--
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c          |   20 +-
 drivers/gpu/drm/amd/amdkfd/kfd_topology.h          |    7 +-
 drivers/gpu/drm/amd/include/kgd_kfd_interface.h    |  101 +-
 include/uapi/linux/kfd_ioctl.h                     |   87 +-
 35 files changed, 4280 insertions(+), 386 deletions(-)
 create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
 create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_iommu.c
 create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_iommu.h

-- 
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] 43+ messages in thread

end of thread, other threads:[~2018-02-12  9:07 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-27  1:09 [PATCH 00/25] Add KFD GPUVM support for dGPUs Felix Kuehling
     [not found] ` <1517015381-1080-1-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2018-01-27  1:09   ` [PATCH 01/25] drm/amdgpu: remove useless BUG_ONs Felix Kuehling
2018-01-27  1:09   ` [PATCH 02/25] drm/amdgpu: Replace kgd_mem with amdgpu_bo for kernel pinned gtt mem Felix Kuehling
2018-01-27  1:09   ` [PATCH 03/25] drm/amdgpu: Fix header file dependencies Felix Kuehling
2018-01-27  1:09   ` [PATCH 04/25] drm/amdgpu: Fix wrong mask in get_atc_vmid_pasid_mapping_pasid Felix Kuehling
2018-01-27  1:09   ` [PATCH 05/25] drm/amdgpu: Remove unused kfd2kgd interface Felix Kuehling
2018-01-27  1:09   ` [PATCH 06/25] drm/amdgpu: Add KFD eviction fence Felix Kuehling
     [not found]     ` <1517015381-1080-7-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2018-01-27  9:16       ` Christian König
     [not found]         ` <11f5f33b-0c0e-44c2-5be9-5d0d25204c2e-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-28 23:42           ` Felix Kuehling
     [not found]             ` <05cc2831-a338-ddae-42c5-8be381787a5e-5C7GfCeVMHo@public.gmane.org>
2018-01-28 23:55               ` Felix Kuehling
     [not found]                 ` <9697c103-f6cd-b7c9-a0a1-5f9ff080f789-5C7GfCeVMHo@public.gmane.org>
2018-01-29 13:43                   ` Christian König
     [not found]                     ` <fa409dd6-6a4e-ea4b-6570-9b16ed4cb4a4-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-29 19:39                       ` Felix Kuehling
     [not found]                         ` <d864b662-2212-4aa6-2dac-f0ee3157681e-5C7GfCeVMHo@public.gmane.org>
2018-01-30 15:28                           ` Kasiviswanathan, Harish
     [not found]                             ` <DM3PR1201MB103814597E6C7DB4632E278E8CE40-BBcFnVpqZhWjUUTFdQAMQmrFom/aUZj6nBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2018-01-30 15:35                               ` Christian König
     [not found]                                 ` <a1c8d096-4cf5-0f36-b0d1-8ed705ba7fb2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-30 23:21                                   ` Felix Kuehling
     [not found]                                     ` <cffd64a9-7222-7f9f-4fe8-e37972de9fd9-5C7GfCeVMHo@public.gmane.org>
2018-01-31  8:09                                       ` Christian König
2018-01-27  1:09   ` [PATCH 07/25] drm/amdgpu: Update kgd2kfd_shared_resources for dGPU support Felix Kuehling
     [not found]     ` <1517015381-1080-8-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2018-01-27  9:19       ` Christian König
     [not found]         ` <de92f17a-5278-1b55-2a22-af17a82f7471-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-28 23:02           ` Felix Kuehling
     [not found]             ` <7425b235-e354-e9b7-0b83-623d9148c61b-5C7GfCeVMHo@public.gmane.org>
2018-01-29 11:42               ` Christian König
     [not found]                 ` <37bf2205-ca7c-f441-1759-48f2d854dea5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-01-29 20:25                   ` Felix Kuehling
     [not found]                     ` <4aefa3bc-66b3-5e39-26e6-cc7c1e66adbd-5C7GfCeVMHo@public.gmane.org>
2018-01-30  9:13                       ` Christian König
2018-01-27  1:09   ` [PATCH 08/25] drm/amdgpu: add amdgpu_sync_clone Felix Kuehling
2018-01-27  1:09   ` [PATCH 09/25] drm/amdgpu: Add GPUVM memory management functions for KFD Felix Kuehling
2018-01-27  1:09   ` [PATCH 10/25] drm/amdgpu: Add submit IB function " Felix Kuehling
2018-01-27  1:09   ` [PATCH 11/25] drm/amdkfd: Add missing #ifdef CONFIG_AMD_IOMMU_V2 guard Felix Kuehling
2018-01-27  1:09   ` [PATCH 12/25] drm/amdkfd: Use per-device sched_policy Felix Kuehling
2018-01-27  1:09   ` [PATCH 13/25] drm/amdkfd: Remove unaligned memory access Felix Kuehling
2018-01-27  1:09   ` [PATCH 14/25] drm/amdkfd: Populate DRM render device minor Felix Kuehling
2018-01-27  1:09   ` [PATCH 15/25] drm/amdkfd: Add GPUVM virtual address space to PDD Felix Kuehling
2018-01-27  1:09   ` [PATCH 16/25] drm/amdkfd: Implement KFD process eviction/restore Felix Kuehling
2018-01-27  1:09   ` [PATCH 17/25] uapi: Fix type used in ioctl parameter structures Felix Kuehling
2018-01-27  1:09   ` [PATCH 18/25] drm/amdkfd: Remove limit on number of GPUs Felix Kuehling
2018-01-27  1:09   ` [PATCH 19/25] drm/amdkfd: Aperture setup for dGPUs Felix Kuehling
2018-01-27  1:09   ` [PATCH 20/25] drm/amdkfd: Add per-process IDR for buffer handles Felix Kuehling
2018-01-27  1:09   ` [PATCH 21/25] drm/amdkfd: Allocate CWSR trap handler memory for dGPUs Felix Kuehling
2018-01-27  1:09   ` [PATCH 22/25] drm/amdkfd: Add TC flush on VMID deallocation for Hawaii Felix Kuehling
2018-01-27  1:09   ` [PATCH 23/25] drm/amdkfd: Add ioctls for GPUVM memory management Felix Kuehling
2018-01-27  1:09   ` [PATCH 24/25] drm/amdkfd: Kmap event page for dGPUs Felix Kuehling
2018-01-27  1:09   ` [PATCH 25/25] drm/amdkfd: Add module option for testing large-BAR functionality Felix Kuehling
2018-01-27  9:08   ` [PATCH 00/25] Add KFD GPUVM support for dGPUs Christian König
2018-02-07  1:32 [PATCH 00/25] Add KFD GPUVM support for dGPUs v2 Felix Kuehling
     [not found] ` <1517967174-21709-1-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2018-02-07  1:32   ` [PATCH 12/25] drm/amdkfd: Use per-device sched_policy Felix Kuehling
     [not found]     ` <1517967174-21709-13-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org>
2018-02-12  9:07       ` Oded Gabbay

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.