Skip to content

Commit

Permalink
drm/amdkfd: fix partition query when setting up recommended sdma engines
Browse files Browse the repository at this point in the history
When users dynamically set the partition mode through sysfs writes,
this can lead to a double lock situation where the KFD is trying to take
the partition lock when updating the recommended SDMA engines.
Have the KFD reference its saved socket device number count instead.
Also ensure we have enough SDMA xGMI engines to report the recommended
engines in the first place.

Fixes: e06b71b ("drm/amdkfd: allow users to target recommended SDMA engines")
Signed-off-by: Jonathan Kim <jonathan.kim@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
  • Loading branch information
Jonathan Kim authored and Alex Deucher committed Aug 13, 2024
1 parent 9b7e697 commit 70f83e7
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions drivers/gpu/drm/amd/amdkfd/kfd_topology.c
Original file line number Diff line number Diff line change
Expand Up @@ -1286,9 +1286,8 @@ static void kfd_set_recommended_sdma_engines(struct kfd_topology_device *to_dev,
struct amdgpu_device *adev = gpu->adev;
int num_xgmi_nodes = adev->gmc.xgmi.num_physical_nodes;
bool support_rec_eng = !amdgpu_sriov_vf(adev) && to_dev->gpu &&
adev->aid_mask && num_xgmi_nodes &&
(amdgpu_xcp_query_partition_mode(adev->xcp_mgr, AMDGPU_XCP_FL_NONE) ==
AMDGPU_SPX_PARTITION_MODE) &&
adev->aid_mask && num_xgmi_nodes && gpu->kfd->num_nodes == 1 &&
kfd_get_num_xgmi_sdma_engines(gpu) >= 14 &&
(!(adev->flags & AMD_IS_APU) && num_xgmi_nodes == 8);

if (support_rec_eng) {
Expand Down

0 comments on commit 70f83e7

Please sign in to comment.