Commit b2ef2fdf authored by Rajneesh Bhardwaj's avatar Rajneesh Bhardwaj Committed by Alex Deucher

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: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarRajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 13a94f3f
...@@ -2005,7 +2005,10 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int *avail_size, ...@@ -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) ...@@ -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,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment