[PATCH] drm/amdkfd: Get unique_id dynamically v2
Felix Kuehling
felix.kuehling at amd.com
Wed Feb 3 18:51:53 UTC 2021
Am 2021-02-03 um 1:47 p.m. schrieb Kent Russell:
> Instead of caching the value during amdgpu_device_init, just call the
> function directly. This avoids issues where the unique_id hasn't been
> saved by the time that KFD's topology snapshot is done (e.g. Arcturus).
>
> KFD's topology information from the amdgpu_device was initially cached
> at KFD initialization due to amdkfd and amdgpu being separate modules.
> Now that they are combined together, we can directly call the functions
> that we need and avoid this unnecessary duplication and complexity.
>
> As a side-effect of this change, we also remove unique_id=0 for CPUs,
> which is obviously not unique.
>
> v2: Drop previous patch printing unique_id in hex
>
> Signed-off-by: Kent Russell <kent.russell at amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>
> ---
> drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 6 +++---
> drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 1 -
> 2 files changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> index a3fc23873819..0be72789ccbc 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
> @@ -497,8 +497,6 @@ static ssize_t node_show(struct kobject *kobj, struct attribute *attr,
> dev->node_props.num_sdma_queues_per_engine);
> sysfs_show_32bit_prop(buffer, offs, "num_cp_queues",
> dev->node_props.num_cp_queues);
> - sysfs_show_64bit_prop(buffer, offs, "unique_id",
> - dev->node_props.unique_id);
>
> if (dev->gpu) {
> log_max_watch_addr =
> @@ -529,6 +527,9 @@ static ssize_t node_show(struct kobject *kobj, struct attribute *attr,
> dev->node_props.capability);
> sysfs_show_32bit_prop(buffer, offs, "sdma_fw_version",
> dev->gpu->sdma_fw_version);
> + sysfs_show_64bit_prop(buffer, offs, "unique_id",
> + amdgpu_amdkfd_get_unique_id(dev->gpu->kgd));
> +
> }
>
> return sysfs_show_32bit_prop(buffer, offs, "max_engine_clk_ccompute",
> @@ -1340,7 +1341,6 @@ int kfd_topology_add_device(struct kfd_dev *gpu)
> dev->gpu->dqm->sched_policy != KFD_SCHED_POLICY_NO_HWS) ?
> amdgpu_amdkfd_get_num_gws(dev->gpu->kgd) : 0;
> dev->node_props.num_cp_queues = get_cp_queues_num(dev->gpu->dqm);
> - dev->node_props.unique_id = amdgpu_amdkfd_get_unique_id(dev->gpu->kgd);
>
> kfd_fill_mem_clk_max_info(dev);
> kfd_fill_iolink_non_crat_info(dev);
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.h b/drivers/gpu/drm/amd/amdkfd/kfd_topology.h
> index 326d9b26b7aa..416fd910e12e 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.h
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.h
> @@ -57,7 +57,6 @@
>
> struct kfd_node_properties {
> uint64_t hive_id;
> - uint64_t unique_id;
> uint32_t cpu_cores_count;
> uint32_t simd_count;
> uint32_t mem_banks_count;
More information about the amd-gfx
mailing list