aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3452-drm-amdgpu-Add-more-page-fault-info-printing-for-GFX.patch
diff options
context:
space:
mode:
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.patch72
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
+