drm/amdgpu: Add more detail to the VM fault printing
authorYong Zhao <Yong.Zhao@amd.com>
Mon, 1 Jul 2019 04:48:40 +0000 (00:48 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 18 Jul 2019 19:18:06 +0000 (14:18 -0500)
With the printing, we don't need to parse the value on our own any more.

Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c

index 9b6afed0129ffe66616168d52df056d4d91dcdca..320b5413738e3276c9f8c7dbdfbc68c8e10107cf 100644 (file)
@@ -359,12 +359,26 @@ static int gmc_v9_0_process_interrupt(struct amdgpu_device *adev,
                        entry->src_id, entry->ring_id, entry->vmid,
                        entry->pasid, task_info.process_name, task_info.tgid,
                        task_info.task_name, task_info.pid);
-               dev_err(adev->dev, "  in page starting at address 0x%016llx from %d\n",
+               dev_err(adev->dev, "  in page starting at address 0x%016llx from client %d\n",
                        addr, entry->client_id);
-               if (!amdgpu_sriov_vf(adev))
+               if (!amdgpu_sriov_vf(adev)) {
                        dev_err(adev->dev,
                                "VM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
                                status);
+                       dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
+                               REG_GET_FIELD(status,
+                               VM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS));
+                       dev_err(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
+                               REG_GET_FIELD(status,
+                               VM_L2_PROTECTION_FAULT_STATUS, WALKER_ERROR));
+                       dev_err(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
+                               REG_GET_FIELD(status,
+                               VM_L2_PROTECTION_FAULT_STATUS, PERMISSION_FAULTS));
+                       dev_err(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
+                               REG_GET_FIELD(status,
+                               VM_L2_PROTECTION_FAULT_STATUS, MAPPING_ERROR));
+
+               }
        }
 
        return 0;