aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0357-drm-amdgpu-add-slap-cache-for-sync-objects-as-well.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0357-drm-amdgpu-add-slap-cache-for-sync-objects-as-well.patch')
-rw-r--r--common/recipes-kernel/linux/files/0357-drm-amdgpu-add-slap-cache-for-sync-objects-as-well.patch131
1 files changed, 0 insertions, 131 deletions
diff --git a/common/recipes-kernel/linux/files/0357-drm-amdgpu-add-slap-cache-for-sync-objects-as-well.patch b/common/recipes-kernel/linux/files/0357-drm-amdgpu-add-slap-cache-for-sync-objects-as-well.patch
deleted file mode 100644
index 21cbb42c..00000000
--- a/common/recipes-kernel/linux/files/0357-drm-amdgpu-add-slap-cache-for-sync-objects-as-well.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From 1f797846d6a6f5734d9cb105fcd5a0b6cc4b3fc8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
-Date: Tue, 16 Feb 2016 11:24:58 +0100
-Subject: [PATCH 0357/1110] drm/amdgpu: add slap cache for sync objects as well
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-We need them all the time.
-
-Signed-off-by: Christian König <christian.koenig@amd.com>
-Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++
- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 ++
- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 36 ++++++++++++++++++++++++++++----
- 3 files changed, 36 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-index 27b1dc3..866e790 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-@@ -594,6 +594,8 @@ int amdgpu_sync_resv(struct amdgpu_device *adev,
- struct fence *amdgpu_sync_get_fence(struct amdgpu_sync *sync);
- int amdgpu_sync_wait(struct amdgpu_sync *sync);
- void amdgpu_sync_free(struct amdgpu_sync *sync);
-+int amdgpu_sync_init(void);
-+void amdgpu_sync_fini(void);
-
- /*
- * GART structures, functions & helpers
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
-index c1182ec..82cab2e 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
-@@ -547,6 +547,7 @@ static struct pci_driver amdgpu_kms_pci_driver = {
-
- static int __init amdgpu_init(void)
- {
-+ amdgpu_sync_init();
- #ifdef CONFIG_VGA_CONSOLE
- if (vgacon_text_force()) {
- DRM_ERROR("VGACON disables amdgpu kernel modesetting.\n");
-@@ -571,6 +572,7 @@ static void __exit amdgpu_exit(void)
- amdgpu_amdkfd_fini();
- drm_pci_exit(driver, pdriver);
- amdgpu_unregister_atpx_handler();
-+ amdgpu_sync_fini();
- }
-
- module_init(amdgpu_init);
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
-index e367342..c48b4fc 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
-@@ -37,6 +37,8 @@ struct amdgpu_sync_entry {
- struct fence *fence;
- };
-
-+static struct kmem_cache *amdgpu_sync_slab;
-+
- /**
- * amdgpu_sync_create - zero init sync object
- *
-@@ -133,7 +135,7 @@ int amdgpu_sync_fence(struct amdgpu_device *adev, struct amdgpu_sync *sync,
- return 0;
- }
-
-- e = kmalloc(sizeof(struct amdgpu_sync_entry), GFP_KERNEL);
-+ e = kmem_cache_alloc(amdgpu_sync_slab, GFP_KERNEL);
- if (!e)
- return -ENOMEM;
-
-@@ -214,7 +216,7 @@ struct fence *amdgpu_sync_get_fence(struct amdgpu_sync *sync)
- f = e->fence;
-
- hash_del(&e->node);
-- kfree(e);
-+ kmem_cache_free(amdgpu_sync_slab, e);
-
- if (!fence_is_signaled(f))
- return f;
-@@ -237,7 +239,7 @@ int amdgpu_sync_wait(struct amdgpu_sync *sync)
-
- hash_del(&e->node);
- fence_put(e->fence);
-- kfree(e);
-+ kmem_cache_free(amdgpu_sync_slab, e);
- }
-
- return 0;
-@@ -259,8 +261,34 @@ void amdgpu_sync_free(struct amdgpu_sync *sync)
- hash_for_each_safe(sync->fences, i, tmp, e, node) {
- hash_del(&e->node);
- fence_put(e->fence);
-- kfree(e);
-+ kmem_cache_free(amdgpu_sync_slab, e);
- }
-
- fence_put(sync->last_vm_update);
- }
-+
-+/**
-+ * amdgpu_sync_init - init sync object subsystem
-+ *
-+ * Allocate the slab allocator.
-+ */
-+int amdgpu_sync_init(void)
-+{
-+ amdgpu_sync_slab = kmem_cache_create(
-+ "amdgpu_sync", sizeof(struct amdgpu_sync_entry), 0,
-+ SLAB_HWCACHE_ALIGN, NULL);
-+ if (!amdgpu_sync_slab)
-+ return -ENOMEM;
-+
-+ return 0;
-+}
-+
-+/**
-+ * amdgpu_sync_fini - fini sync object subsystem
-+ *
-+ * Free the slab allocator.
-+ */
-+void amdgpu_sync_fini(void)
-+{
-+ kmem_cache_destroy(amdgpu_sync_slab);
-+}
---
-2.7.4
-