[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