diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0130-drm-amdkfd-add-H-W-debugger-IOCTL-set-definitions.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0130-drm-amdkfd-add-H-W-debugger-IOCTL-set-definitions.patch | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/common/recipes-kernel/linux/files/0130-drm-amdkfd-add-H-W-debugger-IOCTL-set-definitions.patch b/common/recipes-kernel/linux/files/0130-drm-amdkfd-add-H-W-debugger-IOCTL-set-definitions.patch deleted file mode 100644 index 767f5174..00000000 --- a/common/recipes-kernel/linux/files/0130-drm-amdkfd-add-H-W-debugger-IOCTL-set-definitions.patch +++ /dev/null @@ -1,128 +0,0 @@ -From aef11009c45ca594c18ecc822f101e3908ca3fb4 Mon Sep 17 00:00:00 2001 -From: Yair Shachar <yair.shachar@amd.com> -Date: Sun, 7 Dec 2014 17:05:22 +0200 -Subject: [PATCH 0130/1050] 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> ---- - drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 54 ++++++++++++++++++++++++++++++++ - 1 file changed, 54 insertions(+) - -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c -index b2c6109..b358e91 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c -@@ -432,6 +432,48 @@ out: - return err; - } - -+static int kfd_ioctl_dbg_register(struct file *filep, -+ struct kfd_process *p, void *data) -+{ -+ long status = -EFAULT; -+ -+ return status; -+} -+ -+static int kfd_ioctl_dbg_unrgesiter(struct file *filep, -+ struct kfd_process *p, void *data) -+{ -+ long status = -EFAULT; -+ -+ return status; -+} -+ -+/* -+ * Parse and generate variable size data structure for address watch. -+ * Total size of the buffer and # watch points is limited in order -+ * to prevent kernel abuse. (no bearing to the much smaller HW limitation -+ * which is enforced by dbgdev module) -+ * please also note that the watch address itself are not "copied from user", -+ * since it be set into the HW in user mode values. -+ * -+ */ -+static int kfd_ioctl_dbg_address_watch(struct file *filep, -+ struct kfd_process *p, void *data) -+{ -+ long status = -EFAULT; -+ -+ return status; -+} -+ -+/* Parse and generate fixed size data structure for wave control */ -+static int kfd_ioctl_dbg_wave_control(struct file *filep, -+ struct kfd_process *p, void *data) -+{ -+ long status = -EFAULT; -+ -+ return status; -+} -+ - static int kfd_ioctl_get_clock_counters(struct file *filep, - struct kfd_process *p, void *data) - { -@@ -612,6 +654,18 @@ static const struct amdkfd_ioctl_desc amdkfd_ioctls[] = { - - AMDKFD_IOCTL_DEF(AMDKFD_IOC_WAIT_EVENTS, - kfd_ioctl_wait_events, 0), -+ -+ AMDKFD_IOCTL_DEF(AMDKFD_IOC_DBG_REGISTER, -+ kfd_ioctl_dbg_register, 0), -+ -+ AMDKFD_IOCTL_DEF(AMDKFD_IOC_DBG_UNREGISTER, -+ kfd_ioctl_dbg_unrgesiter, 0), -+ -+ AMDKFD_IOCTL_DEF(AMDKFD_IOC_DBG_ADDRESS_WATCH, -+ kfd_ioctl_dbg_address_watch, 0), -+ -+ AMDKFD_IOCTL_DEF(AMDKFD_IOC_DBG_WAVE_CONTROL, -+ kfd_ioctl_dbg_wave_control, 0), - }; - - #define AMDKFD_CORE_IOCTL_COUNT ARRAY_SIZE(amdkfd_ioctls) --- -1.9.1 - |