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@xxxxxxx> Reviewed-by: Felix Kuehling <Felix.Kuehling@xxxxxxx> > --- > 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 amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx