All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/16] AMDGPU Doorbell manager
@ 2023-03-29 15:47 Shashank Sharma
  2023-03-29 15:47 ` [PATCH 01/16] drm/amdgpu: rename num_doorbells Shashank Sharma
                   ` (16 more replies)
  0 siblings, 17 replies; 87+ messages in thread
From: Shashank Sharma @ 2023-03-29 15:47 UTC (permalink / raw)
  To: amd-gfx
  Cc: Alex Deucher, Mukul Joshi, Felix Kuehling, Christian Koenig,
	Shashank Sharma

The doorbells in AMDGPU drivers are currently managed by different
users in a scattered way, across the driver. The existing clients are:
- AMDGPU graphics driver for kernel level doorbell writes.
- AMDGPU MES module for kernel level doorbell write (MES ring test).
- AMDGPU MES modules for kernel level aggregated doorbell writes.
- AMDGPU MES module for MES process doorbell writes.
- AMDKFD module for KFD/KIQ kernel doorbell writes.
- AMDKFD module for KFD process doorbell writes.
- AMDGPU usermode queues for usermode doorbell writes (upcoming).

This patch series introduces Doorbell-manager to keep the doorbell handling
at a central place. The fundamental changes are:

- Introduce and accommodate a new GEM domain for doorbells.
- Prepare the AMDGPU ttm backend for handling doorbell allocation.
- Introduce doorbell-manager functions to allocate, free and index
  doorbells in one unique way.
- Create doorbell BOs for kernel-level and process level doorbell
  opertations, and place it in existing structures.
- Modify the existing graphics, KFD and MES code to use the
  doorbell-manager functions.
- Remove the existing doorbell management code in KFD/MES.

PS: This series has been sanity tested with kfd_test_suit to ensure
    it is not introducing any regressions due to kfd doorbell changes.

The idea is that:
- a kernel client can call doorbell manager functions to allocate/free
  doorbell pages.
- a usermode app can directly allocate a page from the doorbell bar just
  like a GEM object and use it for different usermode queues.

Alex Deucher (2):
  drm/amdgpu: add UAPI for allocating doorbell memory
  drm/amdgpu: accommodate DOMAIN/PL_DOORBELL

Shashank Sharma (14):
  drm/amdgpu: rename num_doorbells
  drm/amdgpu: include protection for doobell.h
  drm/amdgpu: create a new file for doorbell manager
  drm/amdgpu: don't modify num_doorbells for mes
  drm/amdgpu: add helper to create doorbell pages
  drm/amdgpu: initialize ttm for doorbells
  drm/amdgpu: create kernel doorbell page
  drm/amdgpu: validate doorbell read/write
  drm/amdgpu: get absolute offset from doorbell index
  drm/amdgpu: use doorbell manager for kfd kernel doorbells
  drm/amdgpu: use doorbell manager for kfd process doorbells
  drm/amdgpu: remove ununsed functions and variables
  drm/amdgpu: use doorbell mgr for MES kernel doorbells
  drm/amdgpu: user doorbell mgr for MES process doorbells

 drivers/gpu/drm/amd/amdgpu/Makefile           |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    |   6 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    | 164 ----------
 drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h  | 102 +++++-
 .../gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c  | 304 ++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c       | 165 +++++-----
 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h       |  17 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c    |  11 +-
 .../gpu/drm/amd/amdgpu/amdgpu_res_cursor.h    |   2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c       |  31 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h       |   1 +
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c      |  13 -
 drivers/gpu/drm/amd/amdkfd/kfd_device.c       |   4 +-
 .../drm/amd/amdkfd/kfd_device_queue_manager.c |  16 +-
 drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c     | 198 ++++--------
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h         |  23 +-
 drivers/gpu/drm/amd/amdkfd/kfd_process.c      |  26 +-
 .../amd/amdkfd/kfd_process_queue_manager.c    |  16 +-
 include/uapi/drm/amdgpu_drm.h                 |   7 +-
 19 files changed, 636 insertions(+), 472 deletions(-)
 create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c

-- 
2.40.0


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

end of thread, other threads:[~2023-04-04 16:13 UTC | newest]

Thread overview: 87+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-29 15:47 [PATCH 00/16] AMDGPU Doorbell manager Shashank Sharma
2023-03-29 15:47 ` [PATCH 01/16] drm/amdgpu: rename num_doorbells Shashank Sharma
2023-03-30 11:04   ` Christian König
2023-03-30 13:11   ` Luben Tuikov
2023-03-30 13:13     ` Shashank Sharma
2023-03-30 14:19   ` Alex Deucher
2023-04-04 16:13   ` Luben Tuikov
2023-03-29 15:47 ` [PATCH 02/16] drm/amdgpu: include protection for doobell.h Shashank Sharma
2023-03-30 11:05   ` Christian König
2023-03-30 11:07     ` Shashank Sharma
2023-03-30 14:20   ` Alex Deucher
2023-03-29 15:47 ` [PATCH 03/16] drm/amdgpu: create a new file for doorbell manager Shashank Sharma
2023-03-30 11:09   ` Christian König
2023-03-30 13:29     ` Luben Tuikov
2023-03-30 13:42       ` Shashank Sharma
2023-03-30 14:23   ` Alex Deucher
2023-03-30 14:49     ` Shashank Sharma
2023-03-29 15:47 ` [PATCH 04/16] drm/amdgpu: don't modify num_doorbells for mes Shashank Sharma
2023-03-30 11:10   ` Christian König
2023-03-30 14:24   ` Alex Deucher
2023-03-29 15:47 ` [PATCH 05/16] drm/amdgpu: add UAPI for allocating doorbell memory Shashank Sharma
2023-03-30 11:11   ` Christian König
2023-03-29 15:47 ` [PATCH 06/16] drm/amdgpu: accommodate DOMAIN/PL_DOORBELL Shashank Sharma
2023-03-30 11:14   ` Christian König
2023-03-30 13:33     ` Luben Tuikov
2023-03-30 13:43       ` Shashank Sharma
2023-03-30 13:45         ` Luben Tuikov
2023-03-30 13:48           ` Shashank Sharma
2023-03-30 14:12             ` Luben Tuikov
2023-03-30 15:32               ` Shashank Sharma
2023-03-30 19:59   ` Alex Deucher
2023-03-29 15:47 ` [PATCH 07/16] drm/amdgpu: add helper to create doorbell pages Shashank Sharma
2023-03-30 11:29   ` Christian König
2023-03-30 11:46     ` Shashank Sharma
2023-03-30 13:42   ` Luben Tuikov
2023-03-30 13:44     ` Luben Tuikov
2023-03-30 14:04     ` Shashank Sharma
2023-03-30 14:15       ` Luben Tuikov
2023-03-30 14:34         ` Shashank Sharma
2023-03-30 14:37           ` Luben Tuikov
2023-03-30 14:55           ` Alex Deucher
2023-03-30 15:21             ` Shashank Sharma
2023-03-30 20:35               ` Alex Deucher
2023-03-31  8:26                 ` Shashank Sharma
2023-03-30 14:28   ` Alex Deucher
2023-03-30 14:38     ` Luben Tuikov
2023-03-29 15:47 ` [PATCH 08/16] drm/amdgpu: initialize ttm for doorbells Shashank Sharma
2023-03-30 11:22   ` Christian König
2023-03-30 14:33   ` Alex Deucher
2023-03-30 14:54     ` Shashank Sharma
2023-03-29 15:47 ` [PATCH 09/16] drm/amdgpu: create kernel doorbell page Shashank Sharma
2023-03-30 11:30   ` Christian König
2023-03-30 11:48     ` Shashank Sharma
2023-03-30 14:39       ` Alex Deucher
2023-03-30 14:42         ` Christian König
2023-03-30 14:48           ` Shashank Sharma
2023-03-30 14:53             ` Christian König
2023-03-30 15:04             ` Alex Deucher
2023-03-31  8:25               ` Shashank Sharma
2023-03-30 14:24   ` Luben Tuikov
2023-03-30 14:40     ` Shashank Sharma
2023-03-30 14:49       ` Christian König
2023-03-30 14:52         ` Luben Tuikov
2023-03-30 14:53         ` Shashank Sharma
2023-03-30 14:59           ` Luben Tuikov
2023-03-30 15:09             ` Shashank Sharma
2023-03-29 15:47 ` [PATCH 10/16] drm/amdgpu: validate doorbell read/write Shashank Sharma
2023-03-30 14:34   ` Luben Tuikov
2023-03-30 14:37     ` Shashank Sharma
2023-03-30 14:49       ` Luben Tuikov
2023-03-30 15:02         ` Shashank Sharma
2023-03-29 15:47 ` [PATCH 11/16] drm/amdgpu: get absolute offset from doorbell index Shashank Sharma
2023-03-30 17:18   ` Luben Tuikov
2023-03-30 17:25     ` Shashank Sharma
2023-03-29 15:47 ` [PATCH 12/16] drm/amdgpu: use doorbell manager for kfd kernel doorbells Shashank Sharma
2023-03-30 20:46   ` Alex Deucher
2023-03-31  8:27     ` Shashank Sharma
2023-03-29 15:47 ` [PATCH 13/16] drm/amdgpu: use doorbell manager for kfd process doorbells Shashank Sharma
2023-03-30 20:54   ` Alex Deucher
2023-03-31  8:28     ` Shashank Sharma
2023-03-29 15:47 ` [PATCH 14/16] drm/amdgpu: remove ununsed functions and variables Shashank Sharma
2023-03-29 15:47 ` [PATCH 15/16] drm/amdgpu: use doorbell mgr for MES kernel doorbells Shashank Sharma
2023-03-30 20:58   ` Alex Deucher
2023-03-31  8:29     ` Shashank Sharma
2023-03-29 15:47 ` [PATCH 16/16] drm/amdgpu: user doorbell mgr for MES process doorbells Shashank Sharma
2023-03-30 13:49 ` [PATCH 00/16] AMDGPU Doorbell manager Luben Tuikov
2023-03-30 13:56   ` Sharma, Shashank

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.