Commit 9f0a0b41 authored by Kent Russell's avatar Kent Russell Committed by Oded Gabbay

drm/amdgpu: Add support for reporting VRAM usage

Add functions to report the vram_usage from the amdgpu_device
Signed-off-by: default avatarKent Russell <kent.russell@amd.com>
Signed-off-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
parent b441093e
...@@ -347,3 +347,10 @@ void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info) ...@@ -347,3 +347,10 @@ void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info)
cu_info->max_scratch_slots_per_cu = acu_info.max_scratch_slots_per_cu; cu_info->max_scratch_slots_per_cu = acu_info.max_scratch_slots_per_cu;
cu_info->lds_size = acu_info.lds_size; cu_info->lds_size = acu_info.lds_size;
} }
uint64_t amdgpu_amdkfd_get_vram_usage(struct kgd_dev *kgd)
{
struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
return amdgpu_vram_mgr_usage(&adev->mman.bdev.man[TTM_PL_VRAM]);
}
...@@ -62,6 +62,7 @@ uint64_t get_gpu_clock_counter(struct kgd_dev *kgd); ...@@ -62,6 +62,7 @@ uint64_t get_gpu_clock_counter(struct kgd_dev *kgd);
uint32_t get_max_engine_clock_in_mhz(struct kgd_dev *kgd); uint32_t get_max_engine_clock_in_mhz(struct kgd_dev *kgd);
void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info); void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info);
uint64_t amdgpu_amdkfd_get_vram_usage(struct kgd_dev *kgd);
#define read_user_wptr(mmptr, wptr, dst) \ #define read_user_wptr(mmptr, wptr, dst) \
({ \ ({ \
......
...@@ -200,7 +200,8 @@ static const struct kfd2kgd_calls kfd2kgd = { ...@@ -200,7 +200,8 @@ static const struct kfd2kgd_calls kfd2kgd = {
.get_fw_version = get_fw_version, .get_fw_version = get_fw_version,
.set_scratch_backing_va = set_scratch_backing_va, .set_scratch_backing_va = set_scratch_backing_va,
.get_tile_config = get_tile_config, .get_tile_config = get_tile_config,
.get_cu_info = get_cu_info .get_cu_info = get_cu_info,
.get_vram_usage = amdgpu_amdkfd_get_vram_usage
}; };
struct kfd2kgd_calls *amdgpu_amdkfd_gfx_7_get_functions(void) struct kfd2kgd_calls *amdgpu_amdkfd_gfx_7_get_functions(void)
......
...@@ -161,7 +161,8 @@ static const struct kfd2kgd_calls kfd2kgd = { ...@@ -161,7 +161,8 @@ static const struct kfd2kgd_calls kfd2kgd = {
.get_fw_version = get_fw_version, .get_fw_version = get_fw_version,
.set_scratch_backing_va = set_scratch_backing_va, .set_scratch_backing_va = set_scratch_backing_va,
.get_tile_config = get_tile_config, .get_tile_config = get_tile_config,
.get_cu_info = get_cu_info .get_cu_info = get_cu_info,
.get_vram_usage = amdgpu_amdkfd_get_vram_usage
}; };
struct kfd2kgd_calls *amdgpu_amdkfd_gfx_8_0_get_functions(void) struct kfd2kgd_calls *amdgpu_amdkfd_gfx_8_0_get_functions(void)
......
...@@ -177,6 +177,8 @@ struct tile_config { ...@@ -177,6 +177,8 @@ struct tile_config {
* *
* @get_cu_info: Retrieves activated cu info * @get_cu_info: Retrieves activated cu info
* *
* @get_vram_usage: Returns current VRAM usage
*
* This structure contains function pointers to services that the kgd driver * This structure contains function pointers to services that the kgd driver
* provides to amdkfd driver. * provides to amdkfd driver.
* *
...@@ -267,6 +269,7 @@ struct kfd2kgd_calls { ...@@ -267,6 +269,7 @@ struct kfd2kgd_calls {
void (*get_cu_info)(struct kgd_dev *kgd, void (*get_cu_info)(struct kgd_dev *kgd,
struct kfd_cu_info *cu_info); struct kfd_cu_info *cu_info);
uint64_t (*get_vram_usage)(struct kgd_dev *kgd);
}; };
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment