diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1461-drm-amdkfd-Improve-the-debug-message.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1461-drm-amdkfd-Improve-the-debug-message.patch | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1461-drm-amdkfd-Improve-the-debug-message.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1461-drm-amdkfd-Improve-the-debug-message.patch new file mode 100644 index 00000000..ef3569a0 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1461-drm-amdkfd-Improve-the-debug-message.patch @@ -0,0 +1,149 @@ +From 9cbca74f0c1b3987746a10e05a7362486290972d Mon Sep 17 00:00:00 2001 +From: Yong Zhao <yong.zhao@amd.com> +Date: Wed, 15 Jun 2016 17:46:03 -0400 +Subject: [PATCH 1461/4131] drm/amdkfd: Improve the debug message + +Some misleading debug messages are rectified. Moreover, the size +parameter used when allocating memory is changed to uint64_t from +size_t in order to be consistent with the size type in the alloc +ioctl parameter. + +Change-Id: I9aad3ae0c2030d4bcd9a586b2d96e21088cfa636 +Signed-off-by: Yong Zhao <yong.zhao@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 28 ++++++++++++++---------- + drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 3 ++- + drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 2 +- + 4 files changed, 21 insertions(+), 14 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h +index b7b30af..bbf3404 100755 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h +@@ -116,7 +116,7 @@ int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int dma_buf_fd, + + /* GPUVM API */ + int amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu( +- struct kgd_dev *kgd, uint64_t va, size_t size, ++ struct kgd_dev *kgd, uint64_t va, uint64_t size, + void *vm, struct kgd_mem **mem, + uint64_t *offset, void **kptr, + struct kfd_process_device *pdd, uint32_t flags); +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +index 8c5f315..7b119e8 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +@@ -336,7 +336,7 @@ static int amdgpu_amdkfd_gpuvm_clear_bo(struct amdgpu_device *adev, + } + + static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va, +- size_t size, void *vm, struct kgd_mem **mem, ++ uint64_t size, void *vm, struct kgd_mem **mem, + uint64_t *offset, void **kptr, struct kfd_process_device *pdd, + u32 domain, u64 flags, bool aql_queue, + bool readonly, bool execute, bool no_sub, bool userptr) +@@ -346,6 +346,7 @@ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va, + struct amdgpu_bo *bo; + uint64_t user_addr = 0; + int byte_align; ++ u32 alloc_domain; + + BUG_ON(kgd == NULL); + BUG_ON(size == 0); +@@ -376,16 +377,18 @@ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va, + (*mem)->data2.no_substitute = no_sub; + (*mem)->data2.aql_queue = aql_queue; + +- pr_debug("amdkfd: allocating GTT BO size %lu\n", size); ++ alloc_domain = userptr ? AMDGPU_GEM_DOMAIN_CPU : domain; ++ pr_debug("amdkfd: allocating BO on domain %d with size %llu\n", ++ alloc_domain, size); + + /* Allocate buffer object. Userptr objects need to start out + * in the CPU domain, get moved to GTT when pinned. */ + ret = amdgpu_bo_create(adev, size, byte_align, false, +- userptr ? AMDGPU_GEM_DOMAIN_CPU : domain, ++ alloc_domain, + flags, NULL, NULL, &bo); + if (ret != 0) { +- pr_err("amdkfd: Failed to create BO object on GTT. ret == %d\n", +- ret); ++ pr_err("amdkfd: failed to create BO on domain %d. ret %d\n", ++ alloc_domain, ret); + goto err_bo_create; + } + bo->kfd_bo = *mem; +@@ -402,13 +405,14 @@ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va, + ret = amdgpu_amdkfd_gpuvm_clear_bo(adev, vm, bo); + amdgpu_bo_unreserve(bo); + if (ret) { +- pr_err("amdkfd: Failed to clear BO object on GTT. ret == %d\n", ++ pr_err("amdkfd: failed to clear VRAM BO object. ret %d\n", + ret); + goto err_bo_clear; + } + } + +- pr_debug("Created BO on GTT with size %zu bytes\n", size); ++ pr_debug("amdkfd: created BO on domain %d with size %llu\n", ++ alloc_domain, size); + + if (userptr) { + ret = amdgpu_ttm_tt_set_userptr(bo->tbo.ttm, user_addr, +@@ -816,7 +820,7 @@ static int map_bo_to_gpuvm(struct amdgpu_device *adev, struct amdgpu_bo *bo, + #define BOOL_TO_STR(b) (b == true) ? "true" : "false" + + int amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu( +- struct kgd_dev *kgd, uint64_t va, size_t size, ++ struct kgd_dev *kgd, uint64_t va, uint64_t size, + void *vm, struct kgd_mem **mem, + uint64_t *offset, void **kptr, + struct kfd_process_device *pdd, uint32_t flags) +@@ -915,11 +919,13 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu( + if (unlikely(ret != 0)) + return ret; + ++ pr_debug("Releasing BO with VA 0x%llx, size %lu bytes\n", ++ mem->data2.va, ++ mem->data2.bo->tbo.mem.size); ++ + /* Remove from VM internal data structures */ + list_for_each_entry_safe(entry, tmp, &mem->data2.bo_va_list, bo_list) { +- pr_debug("Releasing BO with VA %p, size %lu bytes\n", +- entry->bo_va, +- mem->data2.bo->tbo.mem.size); ++ pr_debug("\t remove from amdgpu_bo_va %p\n", entry->bo_va); + remove_bo_from_vm((struct amdgpu_device *)entry->kgd_dev, + entry); + } +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +index 43d3954..314c178 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +@@ -1915,7 +1915,8 @@ static long kfd_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) + } else + goto err_i1; + +- dev_dbg(kfd_device, "ioctl cmd 0x%x (#%d), arg 0x%lx\n", cmd, nr, arg); ++ dev_dbg(kfd_device, "ioctl cmd 0x%x (#0x%x), arg 0x%lx\n", ++ cmd, nr, arg); + + process = kfd_get_process(current); + if (IS_ERR(process)) { +diff --git a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h +index 3dca616..b981589 100644 +--- a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h ++++ b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h +@@ -293,7 +293,7 @@ struct kfd2kgd_calls { + void (*write_vmid_invalidate_request)(struct kgd_dev *kgd, + uint8_t vmid); + int (*alloc_memory_of_gpu)(struct kgd_dev *kgd, uint64_t va, +- size_t size, void *vm, ++ uint64_t size, void *vm, + struct kgd_mem **mem, uint64_t *offset, + void **kptr, struct kfd_process_device *pdd, + uint32_t flags); +-- +2.7.4 + |