Commit 0c1690e3 authored by Shaoyun Liu's avatar Shaoyun Liu Committed by Alex Deucher

drm/amdkfd: kfd expose the hive_id of the device through its node properties

Thunk will generate the XGMI topology information when necessary with the hive_id
for each specified device
Signed-off-by: default avatarShaoyun Liu <Shaoyun.Liu@amd.com>
Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Acked-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent db8b62c0
...@@ -476,6 +476,9 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd, ...@@ -476,6 +476,9 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
goto kfd_doorbell_error; goto kfd_doorbell_error;
} }
if (kfd->kfd2kgd->get_hive_id)
kfd->hive_id = kfd->kfd2kgd->get_hive_id(kfd->kgd);
if (kfd_topology_add_device(kfd)) { if (kfd_topology_add_device(kfd)) {
dev_err(kfd_device, "Error adding device to topology\n"); dev_err(kfd_device, "Error adding device to topology\n");
goto kfd_topology_add_device_error; goto kfd_topology_add_device_error;
......
...@@ -254,6 +254,9 @@ struct kfd_dev { ...@@ -254,6 +254,9 @@ struct kfd_dev {
bool cwsr_enabled; bool cwsr_enabled;
const void *cwsr_isa; const void *cwsr_isa;
unsigned int cwsr_isa_size; unsigned int cwsr_isa_size;
/* xGMI */
uint64_t hive_id;
}; };
/* KGD2KFD callbacks */ /* KGD2KFD callbacks */
......
...@@ -443,6 +443,8 @@ static ssize_t node_show(struct kobject *kobj, struct attribute *attr, ...@@ -443,6 +443,8 @@ static ssize_t node_show(struct kobject *kobj, struct attribute *attr,
dev->node_props.location_id); dev->node_props.location_id);
sysfs_show_32bit_prop(buffer, "drm_render_minor", sysfs_show_32bit_prop(buffer, "drm_render_minor",
dev->node_props.drm_render_minor); dev->node_props.drm_render_minor);
sysfs_show_64bit_prop(buffer, "hive_id",
dev->node_props.hive_id);
if (dev->gpu) { if (dev->gpu) {
log_max_watch_addr = log_max_watch_addr =
...@@ -1219,6 +1221,8 @@ int kfd_topology_add_device(struct kfd_dev *gpu) ...@@ -1219,6 +1221,8 @@ int kfd_topology_add_device(struct kfd_dev *gpu)
dev->node_props.drm_render_minor = dev->node_props.drm_render_minor =
gpu->shared_resources.drm_render_minor; gpu->shared_resources.drm_render_minor;
dev->node_props.hive_id = gpu->hive_id;
kfd_fill_mem_clk_max_info(dev); kfd_fill_mem_clk_max_info(dev);
kfd_fill_iolink_non_crat_info(dev); kfd_fill_iolink_non_crat_info(dev);
......
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
#define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000 #define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000
struct kfd_node_properties { struct kfd_node_properties {
uint64_t hive_id;
uint32_t cpu_cores_count; uint32_t cpu_cores_count;
uint32_t simd_count; uint32_t simd_count;
uint32_t mem_banks_count; uint32_t mem_banks_count;
......
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