aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/1747-drm-amdgpu-Add-support-for-reporting-VRAM-usage.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/1747-drm-amdgpu-Add-support-for-reporting-VRAM-usage.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/1747-drm-amdgpu-Add-support-for-reporting-VRAM-usage.patch114
1 files changed, 114 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/1747-drm-amdgpu-Add-support-for-reporting-VRAM-usage.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/1747-drm-amdgpu-Add-support-for-reporting-VRAM-usage.patch
new file mode 100644
index 00000000..9b3dfcd5
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/1747-drm-amdgpu-Add-support-for-reporting-VRAM-usage.patch
@@ -0,0 +1,114 @@
+From 56a66f0c5be5330c6e5743784474acb68ef112bb Mon Sep 17 00:00:00 2001
+From: Kent Russell <kent.russell@amd.com>
+Date: Thu, 20 Jul 2017 12:45:03 -0400
+Subject: [PATCH 1747/4131] drm/amdgpu: Add support for reporting VRAM usage
+
+Add functions to report the vram_usage from the amdgpu_device
+
+Change-Id: Iae954a967505454b69b9632f59ddcbef73593077
+Signed-off-by: Kent Russell <kent.russell@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 7 +++++++
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 1 +
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 3 ++-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 3 ++-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 3 ++-
+ drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 3 +++
+ 6 files changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+index a5d494a..f022cec 100755
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+@@ -479,6 +479,13 @@ int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int dma_buf_fd,
+ return r;
+ }
+
++uint64_t amdgpu_amdkfd_get_vram_usage(struct kgd_dev *kgd)
++{
++ struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
++ uint64_t usage = (u64)atomic64_read(&adev->vram_usage);
++ return usage;
++}
++
+ bool amdgpu_amdkfd_is_kfd_vmid(struct amdgpu_device *adev,
+ u32 vmid)
+ {
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
+index 924e28a..77a7bd7 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
+@@ -175,6 +175,7 @@ int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int dma_buf_fd,
+ uint64_t *bo_size, void *metadata_buffer,
+ size_t buffer_size, uint32_t *metadata_size,
+ uint32_t *flags);
++uint64_t amdgpu_amdkfd_get_vram_usage(struct kgd_dev *kgd);
+
+ #define read_user_wptr(mmptr, wptr, dst) \
+ ({ \
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
+index ddf1f3c..66c79d7 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
+@@ -238,7 +238,8 @@ static const struct kfd2kgd_calls kfd2kgd = {
+ .submit_ib = amdgpu_amdkfd_submit_ib,
+ .get_tile_config = amdgpu_amdkfd_get_tile_config,
+ .restore_process_bos = amdgpu_amdkfd_gpuvm_restore_process_bos,
+- .copy_mem_to_mem = amdgpu_amdkfd_copy_mem_to_mem
++ .copy_mem_to_mem = amdgpu_amdkfd_copy_mem_to_mem,
++ .get_vram_usage = amdgpu_amdkfd_get_vram_usage
+ };
+
+ struct kfd2kgd_calls *amdgpu_amdkfd_gfx_7_get_functions()
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
+index ca03dde..9d9965d 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
+@@ -211,7 +211,8 @@ static const struct kfd2kgd_calls kfd2kgd = {
+ .submit_ib = amdgpu_amdkfd_submit_ib,
+ .get_tile_config = amdgpu_amdkfd_get_tile_config,
+ .restore_process_bos = amdgpu_amdkfd_gpuvm_restore_process_bos,
+- .copy_mem_to_mem = amdgpu_amdkfd_copy_mem_to_mem
++ .copy_mem_to_mem = amdgpu_amdkfd_copy_mem_to_mem,
++ .get_vram_usage = amdgpu_amdkfd_get_vram_usage
+ };
+
+ struct kfd2kgd_calls *amdgpu_amdkfd_gfx_8_0_get_functions()
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
+index dd3499a..8af8d6c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
+@@ -256,7 +256,8 @@ static const struct kfd2kgd_calls kfd2kgd = {
+ .submit_ib = amdgpu_amdkfd_submit_ib,
+ .get_tile_config = amdgpu_amdkfd_get_tile_config,
+ .restore_process_bos = amdgpu_amdkfd_gpuvm_restore_process_bos,
+- .copy_mem_to_mem = amdgpu_amdkfd_copy_mem_to_mem
++ .copy_mem_to_mem = amdgpu_amdkfd_copy_mem_to_mem,
++ .get_vram_usage = amdgpu_amdkfd_get_vram_usage
+ };
+
+ struct kfd2kgd_calls *amdgpu_amdkfd_gfx_9_0_get_functions()
+diff --git a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
+index 79f2562..71c50f9 100644
+--- a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
++++ b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
+@@ -242,6 +242,8 @@ struct tile_config {
+ *
+ * @copy_mem_to_mem: Copies size bytes from source BO to destination BO
+ *
++ * @get_vram_usage: Returns current VRAM usage
++ *
+ * This structure contains function pointers to services that the kgd driver
+ * provides to amdkfd driver.
+ *
+@@ -396,6 +398,7 @@ struct kfd2kgd_calls {
+ uint64_t src_offset, struct kgd_mem *dst_mem,
+ uint64_t dest_offset, uint64_t size,
+ struct dma_fence **f, uint64_t *actual_size);
++ uint64_t (*get_vram_usage)(struct kgd_dev *kgd);
+ };
+
+ /**
+--
+2.7.4
+