[PATCH 00/11] Add H/W Debugger module support to amdkfd

Oded Gabbay oded.gabbay at gmail.com
Wed May 20 14:28:57 PDT 2015


This patch-set adds the H/W debugger module support to amdkfd.
The H/W debugger module support enables a userspace debugger, e.g gdb, to 
debug GPU kernels running in HSA mode.

The available operations in this patch-set are setting watchpoints in the 
GPU kernel and controlling wave-fronts.

It is important to mention that due to security reasons, the userspace process 
can only debug itself. This means that the process should contain an "agent" 
that could be connected to remotely by a debugger, which will provide the 
front-end to the user.

There is ongoing work inside AMD to provide such a tool via gdb extensions.

In addition, this patch-set enables amdkfd to "kill" all running waves, in
case of an infinite GPU kernel (due to bug or malicious attack), by using the 
debugger infrastructure. This provides greater control to the kernel level, 
which is always a good thing, IMO.

More data is inside the individual commit messages.

Please review.

Thanks,

	Oded

Alexey Skidanov (1):
  drm/radeon: Add ATC VMID<-->PASID functions to kfd->kgd

Ben Goz (1):
  drm/amdkfd: Enforce kill all waves on process termination

Yair Shachar (9):
  drm/radeon: Add H/W debugger kfd->kgd functions
  drm/amdkfd: add H/W debugger IOCTL set definitions
  drm/amdkfd: Add static user-mode queues support
  drm/amdkfd: Add skeleton H/W debugger module support
  drm/amdkfd: Add wave control operation to debugger
  drm/amdkfd: Add address watch operation to debugger
  drm/amdkfd: Implement (un)register debugger IOCTLs
  drm/amdkfd: Implement wave control debugger IOCTL
  drm/amdkfd: Implement address watch debugger IOCTL

 drivers/gpu/drm/amd/amdkfd/Makefile                |   3 +-
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c           | 310 +++++++
 drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c            | 886 +++++++++++++++++++++
 drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.h            | 193 +++++
 drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c            | 168 ++++
 drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.h            | 294 +++++++
 drivers/gpu/drm/amd/amdkfd/kfd_device.c            |   5 +
 .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c  |  48 +-
 .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h  |   6 +
 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c    |  46 +-
 drivers/gpu/drm/amd/amdkfd/kfd_pm4_headers.h       |   6 +-
 drivers/gpu/drm/amd/amdkfd/kfd_pm4_headers_diq.h   | 290 +++++++
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h              |  18 +
 drivers/gpu/drm/amd/amdkfd/kfd_process.c           |   8 +
 .../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c |  18 +-
 drivers/gpu/drm/amd/include/kgd_kfd_interface.h    |  21 +
 drivers/gpu/drm/radeon/cik_reg.h                   |  56 +-
 drivers/gpu/drm/radeon/cikd.h                      |   9 +-
 drivers/gpu/drm/radeon/radeon_kfd.c                | 151 +++-
 include/uapi/linux/kfd_ioctl.h                     |  43 +-
 20 files changed, 2548 insertions(+), 31 deletions(-)
 create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c
 create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.h
 create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
 create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.h
 create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_pm4_headers_diq.h

-- 
2.1.0



More information about the dri-devel mailing list