mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-11-17 12:14:43 +00:00
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: Shaoyun Liu <Shaoyun.Liu@amd.com> Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
db8b62c04b
commit
0c1690e38b
4 changed files with 11 additions and 0 deletions
|
|
@ -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 {
|
||||||
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,
|
||||||
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)
|
||||||
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 @@
|
||||||
#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;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue