drm/amdkfd: change SDMA MQD memory type
authorEric Huang <JinhuiEric.Huang@amd.com>
Wed, 26 Feb 2020 19:13:51 +0000 (14:13 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 28 Feb 2020 21:59:20 +0000 (16:59 -0500)
SDMA MQD memory type is NC that causes MQD data overwritten
accidentally by an old stable cache line. Changing it to UC
default for GART will fix the issue.

The mqd_gfx9 parameter is meant for control stacks that are
allocated together with user mode queue MQDs. Setting
mqd_gfx9 to true maps the control stack pages as NC.
Here it was accidentally applied to SDMA MQDs,
which are allocated together with the HIQ MQD. Setting
the mqd_gfx9 to false avoids that.

Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
Acked-by: Yong Zhao <Yong.Zhao@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 692abfd..77ea0f0 100644 (file)
@@ -1734,7 +1734,7 @@ static int allocate_hiq_sdma_mqd(struct device_queue_manager *dqm)
 
        retval = amdgpu_amdkfd_alloc_gtt_mem(dev->kgd, size,
                &(mem_obj->gtt_mem), &(mem_obj->gpu_addr),
-               (void *)&(mem_obj->cpu_ptr), true);
+               (void *)&(mem_obj->cpu_ptr), false);
 
        return retval;
 }