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 <[email protected]>

Reviewed-by: Felix Kuehling <[email protected]>


> ---
>  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;
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to