aboutsummaryrefslogtreecommitdiffstats
path: root/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1628-drm-amdgpu-Make-PTE-flags-per-mapping-not-per-BO.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1628-drm-amdgpu-Make-PTE-flags-per-mapping-not-per-BO.patch')
-rw-r--r--meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1628-drm-amdgpu-Make-PTE-flags-per-mapping-not-per-BO.patch140
1 files changed, 0 insertions, 140 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1628-drm-amdgpu-Make-PTE-flags-per-mapping-not-per-BO.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1628-drm-amdgpu-Make-PTE-flags-per-mapping-not-per-BO.patch
deleted file mode 100644
index 509b426f..00000000
--- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1628-drm-amdgpu-Make-PTE-flags-per-mapping-not-per-BO.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From c2d8cc52beae81712528f4016aec8fabeeb7c757 Mon Sep 17 00:00:00 2001
-From: Felix Kuehling <Felix.Kuehling@amd.com>
-Date: Thu, 16 Mar 2017 13:53:33 -0400
-Subject: [PATCH 1628/4131] drm/amdgpu: Make PTE flags per mapping, not per BO
-
-PTE flags are ASIC-specific. Vega10 PTEs use different flags. So
-two mappings of the same BO on different GPUs may need different
-flags. Store the ASIC-specific PTE flags per mapping, not per BO.
-
-Change-Id: Id27363c61f60699337acb3e2721ec0345d70ae6b
-Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 3 +-
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 35 +++++++++++-------------
- 2 files changed, 18 insertions(+), 20 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-index 23e2f12..a6a538ac 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-@@ -43,6 +43,7 @@ struct kfd_bo_va_list {
- bool is_mapped;
- bool map_fail;
- uint64_t va;
-+ uint64_t pte_flags;
- };
-
- struct kgd_mem {
-@@ -60,7 +61,7 @@ struct kgd_mem {
- struct delayed_work work; /* for restore evicted mem */
- struct mm_struct *mm; /* for restore */
-
-- uint64_t pte_flags;
-+ uint32_t mapping_flags;
-
- /* flags bitfield */
- bool coherent : 1;
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-index 29dcc29..e8d3b5d 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-@@ -360,6 +360,8 @@ static int add_bo_to_vm(struct amdgpu_device *adev, struct kgd_mem *mem,
- }
-
- bo_va_entry->va = va;
-+ bo_va_entry->pte_flags = amdgpu_vm_get_pte_flags(adev,
-+ mem->mapping_flags);
- bo_va_entry->kgd_dev = (void *)adev;
- list_add(&bo_va_entry->bo_list, list_bo_va);
-
-@@ -503,7 +505,7 @@ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va,
- uint64_t user_addr = 0;
- int byte_align;
- u32 alloc_domain;
-- uint32_t get_pte_flags;
-+ uint32_t mapping_flags;
- struct amdkfd_vm *kfd_vm = (struct amdkfd_vm *)vm;
-
- BUG_ON(kgd == NULL);
-@@ -537,17 +539,17 @@ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va,
- (*mem)->no_substitute = no_sub;
- (*mem)->aql_queue = aql_queue;
-
-- get_pte_flags = AMDGPU_VM_PAGE_READABLE;
-+ mapping_flags = AMDGPU_VM_PAGE_READABLE;
- if (!readonly)
-- get_pte_flags |= AMDGPU_VM_PAGE_WRITEABLE;
-+ mapping_flags |= AMDGPU_VM_PAGE_WRITEABLE;
- if (execute)
-- get_pte_flags |= AMDGPU_VM_PAGE_EXECUTABLE;
-+ mapping_flags |= AMDGPU_VM_PAGE_EXECUTABLE;
- if (coherent)
-- get_pte_flags |= AMDGPU_VM_MTYPE_UC;
-+ mapping_flags |= AMDGPU_VM_MTYPE_UC;
- else
-- get_pte_flags |= AMDGPU_VM_MTYPE_NC;
-+ mapping_flags |= AMDGPU_VM_MTYPE_NC;
-
-- (*mem)->pte_flags = amdgpu_vm_get_pte_flags(adev, get_pte_flags);
-+ (*mem)->mapping_flags = mapping_flags;
-
- alloc_domain = userptr ? AMDGPU_GEM_DOMAIN_CPU : domain;
-
-@@ -974,8 +976,7 @@ static int update_gpuvm_pte(struct amdgpu_device *adev,
- }
-
- static int map_bo_to_gpuvm(struct amdgpu_device *adev,
-- struct kfd_bo_va_list *entry, uint64_t pte_flags,
-- struct amdgpu_sync *sync)
-+ struct kfd_bo_va_list *entry, struct amdgpu_sync *sync)
- {
- int ret;
- struct amdgpu_bo *bo = entry->bo_va->bo;
-@@ -1005,7 +1006,7 @@ static int map_bo_to_gpuvm(struct amdgpu_device *adev,
- */
- ret = amdgpu_vm_bo_map(adev, entry->bo_va,
- entry->va, 0, amdgpu_bo_size(bo),
-- pte_flags);
-+ entry->pte_flags);
- if (ret != 0) {
- pr_err("Failed to map VA 0x%llx in vm. ret %d\n",
- entry->va, ret);
-@@ -1299,8 +1300,7 @@ int amdgpu_amdkfd_gpuvm_map_memory_to_gpu(
- entry->va, entry->va + bo_size,
- entry);
-
-- ret = map_bo_to_gpuvm(adev, entry, mem->pte_flags,
-- &ctx.sync);
-+ ret = map_bo_to_gpuvm(adev, entry, &ctx.sync);
- if (ret != 0) {
- pr_err("Failed to map radeon bo to gpuvm\n");
- goto map_bo_to_gpuvm_failed;
-@@ -1866,11 +1866,9 @@ int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd,
-
- INIT_LIST_HEAD(&(*mem)->bo_va_list);
- mutex_init(&(*mem)->lock);
-- (*mem)->pte_flags = amdgpu_vm_get_pte_flags(adev,
-- AMDGPU_VM_PAGE_READABLE |
-- AMDGPU_VM_PAGE_WRITEABLE |
-- AMDGPU_VM_PAGE_EXECUTABLE |
-- AMDGPU_VM_MTYPE_NC);
-+ (*mem)->mapping_flags =
-+ AMDGPU_VM_PAGE_READABLE | AMDGPU_VM_PAGE_WRITEABLE |
-+ AMDGPU_VM_PAGE_EXECUTABLE | AMDGPU_VM_MTYPE_NC;
-
- (*mem)->bo = amdgpu_bo_ref(bo);
- (*mem)->va = va;
-@@ -2066,8 +2064,7 @@ int amdgpu_amdkfd_gpuvm_restore_mem(struct kgd_mem *mem, struct mm_struct *mm)
- continue;
- }
-
-- r = map_bo_to_gpuvm(adev, entry, mem->pte_flags,
-- &ctx.sync);
-+ r = map_bo_to_gpuvm(adev, entry, &ctx.sync);
- if (unlikely(r != 0)) {
- pr_err("Failed to map BO to gpuvm\n");
- entry->map_fail = true;
---
-2.7.4
-