aboutsummaryrefslogtreecommitdiffstats
path: root/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1302-drm-amd-Implement-parallel-memory-mapping-on-mGPUs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1302-drm-amd-Implement-parallel-memory-mapping-on-mGPUs.patch')
-rw-r--r--meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1302-drm-amd-Implement-parallel-memory-mapping-on-mGPUs.patch74
1 files changed, 0 insertions, 74 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1302-drm-amd-Implement-parallel-memory-mapping-on-mGPUs.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1302-drm-amd-Implement-parallel-memory-mapping-on-mGPUs.patch
deleted file mode 100644
index 55e781ad..00000000
--- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1302-drm-amd-Implement-parallel-memory-mapping-on-mGPUs.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 10cb2c44e19693b5c7943a0a9cd944ee7c4ca50d Mon Sep 17 00:00:00 2001
-From: Lan Xiao <Lan.Xiao@amd.com>
-Date: Fri, 23 Jun 2017 16:06:48 -0400
-Subject: [PATCH 1302/4131] drm/amd: Implement parallel memory mapping on mGPUs
-
-Alter the KFD-KGD interface to optimize multi-GPU memory mappings to
-work concurrently instead of sequentially. Return the fences
-during the process, wait for all fences after the mappings are done.
-The fences are stored in the associated kgd_mem object.
-
-This change also enables interruptible waiting with proper signal
-handling
-
-Change-Id: I9ae7f4bd54165b14dd5b37df5df6516aa80cba83
-Signed-off-by: Lan Xiao <Lan.Xiao@amd.com>
----
- drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 7 +++++++
- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 8 ++++++++
- 2 files changed, 15 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
-index 64a4373..dbc3afd 100644
---- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
-+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
-@@ -1398,6 +1398,12 @@ static int kfd_ioctl_map_memory_to_gpu(struct file *filep,
- pr_err("Failed to map\n");
- }
-
-+ err = dev->kfd2kgd->sync_memory(dev->kgd, (struct kgd_mem *) mem, true);
-+ if (err) {
-+ pr_debug("Sync memory failed, wait interrupted by user signal\n");
-+ goto sync_memory_failed;
-+ }
-+
- if (args->device_ids_array_size > 0 && devices_arr)
- kfree(devices_arr);
-
-@@ -1407,6 +1413,7 @@ static int kfd_ioctl_map_memory_to_gpu(struct file *filep,
- up_write(&p->lock);
- get_mem_obj_from_handle_failed:
- copy_from_user_failed:
-+sync_memory_failed:
- kfree(devices_arr);
- return err;
- }
-diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
-index d1ef118..f5e2282 100644
---- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
-+++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
-@@ -136,6 +136,13 @@ static int kfd_process_alloc_gpuvm(struct kfd_process *p,
- if (err)
- goto err_map_mem;
-
-+ err = kdev->kfd2kgd->sync_memory(kdev->kgd, (struct kgd_mem *) mem,
-+ true);
-+ if (err) {
-+ pr_debug("Sync memory failed, wait interrupted by user signal\n");
-+ goto sync_memory_failed;
-+ }
-+
- /* Create an obj handle so kfd_process_device_remove_obj_handle
- * will take care of the bo removal when the process finishes.
- * We do not need to take p->lock, because the process is just
-@@ -151,6 +158,7 @@ static int kfd_process_alloc_gpuvm(struct kfd_process *p,
- return err;
-
- free_gpuvm:
-+sync_memory_failed:
- kfd_process_free_gpuvm(mem, pdd);
- return err;
-
---
-2.7.4
-