diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3452-drm-amdgpu-Add-more-page-fault-info-printing-for-GFX.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3452-drm-amdgpu-Add-more-page-fault-info-printing-for-GFX.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3452-drm-amdgpu-Add-more-page-fault-info-printing-for-GFX.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3452-drm-amdgpu-Add-more-page-fault-info-printing-for-GFX.patch new file mode 100644 index 00000000..fb57ff0e --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3452-drm-amdgpu-Add-more-page-fault-info-printing-for-GFX.patch @@ -0,0 +1,72 @@ +From cc05d43cd9b7e0a33c7bb2bcf745d038758caf8c Mon Sep 17 00:00:00 2001 +From: Yong Zhao <Yong.Zhao@amd.com> +Date: Wed, 7 Aug 2019 16:21:09 -0400 +Subject: [PATCH 3452/4256] drm/amdgpu: Add more page fault info printing for + GFX10 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The printing we did for GFX9 was not propogated to GFX10 somehow, so fix +it now. + +Change-Id: Ic0b8381134340b83cd69c3fe186ac7a8a97b1bca +Signed-off-by: Yong Zhao <Yong.Zhao@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 33 ++++++++++++++++++++++---- + 1 file changed, 28 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c +index 4e3ac1084a94..ead2d3bf8a8d 100644 +--- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c +@@ -140,17 +140,40 @@ static int gmc_v10_0_process_interrupt(struct amdgpu_device *adev, + } + + if (printk_ratelimit()) { ++ struct amdgpu_task_info task_info; ++ ++ memset(&task_info, 0, sizeof(struct amdgpu_task_info)); ++ amdgpu_vm_get_task_info(adev, entry->pasid, &task_info); ++ + dev_err(adev->dev, +- "[%s] VMC page fault (src_id:%u ring:%u vmid:%u pasid:%u)\n", ++ "[%s] page fault (src_id:%u ring:%u vmid:%u pasid:%u, " ++ "for process %s pid %d thread %s pid %d)\n", + entry->vmid_src ? "mmhub" : "gfxhub", + entry->src_id, entry->ring_id, entry->vmid, +- entry->pasid); +- dev_err(adev->dev, " at page 0x%016llx from %d\n", ++ 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 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", ++ "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n", + status); ++ dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n", ++ REG_GET_FIELD(status, ++ GCVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS)); ++ dev_err(adev->dev, "\t WALKER_ERROR: 0x%lx\n", ++ REG_GET_FIELD(status, ++ GCVM_L2_PROTECTION_FAULT_STATUS, WALKER_ERROR)); ++ dev_err(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n", ++ REG_GET_FIELD(status, ++ GCVM_L2_PROTECTION_FAULT_STATUS, PERMISSION_FAULTS)); ++ dev_err(adev->dev, "\t MAPPING_ERROR: 0x%lx\n", ++ REG_GET_FIELD(status, ++ GCVM_L2_PROTECTION_FAULT_STATUS, MAPPING_ERROR)); ++ dev_err(adev->dev, "\t RW: 0x%lx\n", ++ REG_GET_FIELD(status, ++ GCVM_L2_PROTECTION_FAULT_STATUS, RW)); ++ } + } + + return 0; +-- +2.17.1 + |