OpenCloudOS-Kernel/drivers/gpu/drm/amd/amdkfd
Yair Shachar aef11009c4 drm/amdkfd: add H/W debugger IOCTL set definitions
This patch adds four new IOCTLs to amdkfd. These IOCTLs expose a H/W
debugger functionality to the userspace.

The IOCTLs are:

- AMDKFD_IOC_DBG_REGISTER:

The purpose of this IOCTL is to notify amdkfd that a process wants to use
GPU debugging facilities on itself only.
It is expected that this IOCTL would be called before any other H/W
debugger requests are sent to amdkfd and for each GPU where the H/W
debugging needs to be enabled. The use of this IOCTL ensures that only
one instance of a debugger is active in the system.

- AMDKFD_IOC_DBG_UNREGISTER:

This IOCTL detaches the debugger/debugged process from the H/W
Debug which was established by the AMDKFD_IOC_DBG_REGISTER IOCTL.

- AMDKFD_IOC_DBG_ADDRESS_WATCH:

This IOCTL allows to set different watchpoints with various conditions as
indicated by the IOCTL's arguments. The available number of watchpoints
is retrieved from topology. This operation is confined to the current
debugged process, which was registered through AMDKFD_IOC_DBG_REGISTER.

- AMDKFD_IOC_DBG_WAVE_CONTROL:

This IOCTL allows to control a wavefront as indicated by the IOCTL's
arguments. For example, you can halt/resume or kill either a
single wavefront or a set of wavefronts. This operation is confined to
the current debugged process, which was registered through
AMDKFD_IOC_DBG_REGISTER.

Because the arguments for the address watch IOCTL and wave control IOCTL
are dynamic, meaning that they could vary in size, the userspace passes a
pointer to a structure (in userspace) that contains the value of the
arguments. The kernel driver is responsible to parse this structure and
validate its contents.

v2: change void* to uint64_t inside ioctl arguments

Signed-off-by: Yair Shachar <yair.shachar@amd.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
2015-06-03 11:32:07 +03:00
..
Kconfig amdkfd: Remove DRM_AMDGPU dependency from Kconfig 2014-11-21 22:36:09 +02:00
Makefile drm/amdkfd: Add the events module 2015-05-19 13:02:26 +03:00
cik_event_interrupt.c drm/amdkfd: Add bad opcode exception handling 2015-05-19 13:02:28 +03:00
cik_int.h drm/amdkfd: Add bad opcode exception handling 2015-05-19 13:02:28 +03:00
cik_regs.h drm/amdkfd: Don't include header files from radeon 2015-01-02 23:18:54 +02:00
kfd_chardev.c drm/amdkfd: add H/W debugger IOCTL set definitions 2015-06-03 11:32:07 +03:00
kfd_crat.h amdkfd: Add topology module to amdkfd 2014-07-16 21:22:32 +03:00
kfd_device.c drm/amdkfd: Add memory exception handling 2015-05-19 13:02:27 +03:00
kfd_device_queue_manager.c Linux 4.1-rc4 2015-05-20 16:23:53 +10:00
kfd_device_queue_manager.h drm/amdkfd: make the sdma vm init to be asic specific 2015-05-19 12:13:39 +03:00
kfd_device_queue_manager_cik.c drm/amdkfd: make the sdma vm init to be asic specific 2015-05-19 12:13:39 +03:00
kfd_device_queue_manager_vi.c drm/amdkfd: make the sdma vm init to be asic specific 2015-05-19 12:13:39 +03:00
kfd_doorbell.c drm/amdkfd: reformat some debug prints 2015-05-19 12:13:38 +03:00
kfd_events.c drm/amdkfd: Add module parameter of send_sigterm 2015-05-19 13:02:28 +03:00
kfd_events.h drm/amdkfd: Add bad opcode exception handling 2015-05-19 13:02:28 +03:00
kfd_flat_memory.c drm/amdkfd: Process-device data creation and lookup split 2015-01-09 22:25:58 +02:00
kfd_interrupt.c drm/amdkfd: Add the events module 2015-05-19 13:02:26 +03:00
kfd_kernel_queue.c drm/amdkfd: reformat some debug prints 2015-05-19 12:13:38 +03:00
kfd_kernel_queue.h drm/amdkfd: Remove sync_with_hw() from amdkfd 2015-01-15 12:07:48 +02:00
kfd_kernel_queue_cik.c drm/amdkfd: Add initial VI support for KQ 2014-12-02 16:38:57 +02:00
kfd_kernel_queue_vi.c drm/amdkfd: Add initial VI support for KQ 2014-12-02 16:38:57 +02:00
kfd_module.c drm/amdkfd: change driver version to 0.7.2 2015-05-19 13:02:30 +03:00
kfd_mqd_manager.c drm/amdkfd: Change MQD manager to be H/W specific 2015-01-04 11:24:25 +02:00
kfd_mqd_manager.h amdkfd: Add mqd_manager module 2014-07-17 00:36:17 +03:00
kfd_mqd_manager_cik.c drm/amdkfd: Add multiple kgd support 2015-03-25 14:02:05 +02:00
kfd_mqd_manager_vi.c drm/amdkfd: Change MQD manager to be H/W specific 2015-01-04 11:24:25 +02:00
kfd_packet_manager.c drm/amdkfd: Remove sync_with_hw() from amdkfd 2015-01-15 12:07:48 +02:00
kfd_pasid.c drm/amdkfd: Allow user to limit only queues per device 2015-01-18 13:18:01 +02:00
kfd_pm4_headers.h amdkfd: Add kernel queue module 2014-07-17 00:45:35 +03:00
kfd_pm4_opcodes.h amdkfd: Add kernel queue module 2014-07-17 00:45:35 +03:00
kfd_priv.h drm/amdkfd: Use DECLARE_BITMAP 2015-06-03 11:31:12 +03:00
kfd_process.c drm/amdkfd: Add the events module 2015-05-19 13:02:26 +03:00
kfd_process_queue_manager.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-02-16 15:48:00 -08:00
kfd_queue.c amdkfd: Add queue module 2014-07-17 00:18:51 +03:00
kfd_topology.c drm/amdkfd: Don't report local memory size 2015-05-07 17:37:52 +03:00
kfd_topology.h amdkfd: Add topology module to amdkfd 2014-07-16 21:22:32 +03:00