drm/amdkfd: Fix MQD size calculation
authorOak Zeng <Oak.Zeng@amd.com>
Fri, 4 Oct 2019 14:28:21 +0000 (09:28 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 7 Oct 2019 20:09:53 +0000 (15:09 -0500)
On device initialization, a chunk of GTT memory is pre-allocated for
HIQ and all SDMA queues mqd. The size of this allocation was wrong.
The correct sdma engine number should be PCIe-optimized SDMA engine
number plus xgmi SDMA engine number.

Reported-by: Jonathan Kim <Jonathan.Kim@amd.com>
Signed-off-by: Jonathan Kim <Jonathan.Kim@amd.com>
Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c

index 553c45e168150623d6788e84b592f5f4cc346f7f..1d82bfe2f3f8b4f1145c27c9e3b5e69c134fcdcf 100644 (file)
@@ -1692,7 +1692,8 @@ static int allocate_hiq_sdma_mqd(struct device_queue_manager *dqm)
        struct kfd_dev *dev = dqm->dev;
        struct kfd_mem_obj *mem_obj = &dqm->hiq_sdma_mqd;
        uint32_t size = dqm->mqd_mgrs[KFD_MQD_TYPE_SDMA]->mqd_size *
-               dev->device_info->num_sdma_engines *
+               (dev->device_info->num_sdma_engines +
+               dev->device_info->num_xgmi_sdma_engines) *
                dev->device_info->num_sdma_queues_per_engine +
                dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]->mqd_size;