RE: [PATCH] drm/amdkfd: fix partition query when setting up recommended sdma engines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[Public]

Reviewed-by: Lijo Lazar <lijo.lazar@xxxxxxx>

Thanks,
Lijo
-----Original Message-----
From: Kim, Jonathan <Jonathan.Kim@xxxxxxx>
Sent: Thursday, August 8, 2024 9:39 PM
To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Lazar, Lijo <Lijo.Lazar@xxxxxxx>; Kuehling, Felix <Felix.Kuehling@xxxxxxx>; Kim, Jonathan <Jonathan.Kim@xxxxxxx>; Kim, Jonathan <Jonathan.Kim@xxxxxxx>
Subject: [PATCH] drm/amdkfd: fix partition query when setting up recommended sdma engines

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 report the recommended engines in the first place.

v2: fixups in description

Fixes: a0f548d7871e ("drm/amdkfd: allow users to target recommended SDMA engines")
Signed-off-by: Jonathan Kim <jonathan.kim@xxxxxxx>
---
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
index 40771f8752cb..27d452e50ca9 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
@@ -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) {
--
2.34.1





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux