drm/amdkfd: Report XGMI IOLINKs for GFXIP9.4.3
GFXIP 9.4.3 could be in APU or carveout mode but we cannot use the xgmi.connected_to_cpu flag to identify the iolinks type. Use appropriate APU or Carveout mode based condition to report xgmi connection in kfd topology. Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
13a94f3f13
commit
b2ef2fdffe
@@ -2005,7 +2005,10 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int *avail_size,
|
|||||||
/* Fill in IOLINK subtype.
|
/* Fill in IOLINK subtype.
|
||||||
* TODO: Fill-in other fields of iolink subtype
|
* TODO: Fill-in other fields of iolink subtype
|
||||||
*/
|
*/
|
||||||
if (kdev->adev->gmc.xgmi.connected_to_cpu) {
|
if (kdev->adev->gmc.xgmi.connected_to_cpu ||
|
||||||
|
(KFD_GC_VERSION(kdev) == IP_VERSION(9, 4, 3) &&
|
||||||
|
kdev->adev->smuio.funcs->get_pkg_type(kdev->adev) ==
|
||||||
|
AMDGPU_PKG_TYPE_APU)) {
|
||||||
bool ext_cpu = KFD_GC_VERSION(kdev) != IP_VERSION(9, 4, 3);
|
bool ext_cpu = KFD_GC_VERSION(kdev) != IP_VERSION(9, 4, 3);
|
||||||
int mem_bw = 819200, weight = ext_cpu ? KFD_CRAT_XGMI_WEIGHT :
|
int mem_bw = 819200, weight = ext_cpu ? KFD_CRAT_XGMI_WEIGHT :
|
||||||
KFD_CRAT_INTRA_SOCKET_WEIGHT;
|
KFD_CRAT_INTRA_SOCKET_WEIGHT;
|
||||||
|
|||||||
@@ -1327,9 +1327,8 @@ static void kfd_fill_iolink_non_crat_info(struct kfd_topology_device *dev)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Include the CPU peer in GPU hive if connected over xGMI. */
|
/* Include the CPU peer in GPU hive if connected over xGMI. */
|
||||||
if (!peer_dev->gpu && !peer_dev->node_props.hive_id &&
|
if (!peer_dev->gpu &&
|
||||||
dev->node_props.hive_id &&
|
link->iolink_type == CRAT_IOLINK_TYPE_XGMI)
|
||||||
dev->gpu->adev->gmc.xgmi.connected_to_cpu)
|
|
||||||
peer_dev->node_props.hive_id = dev->node_props.hive_id;
|
peer_dev->node_props.hive_id = dev->node_props.hive_id;
|
||||||
|
|
||||||
list_for_each_entry(inbound_link, &peer_dev->io_link_props,
|
list_for_each_entry(inbound_link, &peer_dev->io_link_props,
|
||||||
|
|||||||
Reference in New Issue
Block a user