Re: [PATCH v2] drm/amdgpu: replace VM fault error by info logs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 2022-04-25 um 11:29 schrieb Felix Kuehling:
Am 2022-04-23 um 13:54 schrieb Christian König:
Am 23.04.22 um 04:24 schrieb Alex Sierra:
This is not a kernel error. These logs are caused by VM faults that
could not be handled. Typically, generated by user mode applications.

Well it's still a hardware fault which should be logged as an error.

At least in ROCm compute applications, a VM fault does not take down the hardware. It only leads to termination of the process that caused the fault. It's very similar to a segfault in an application, which is not considered a HW fault either.

Turns out, a segfault also prints an error message in dmesg. So I guess the VM fault can remain an error message as well.

In a test that triggers VM faults on purpose, we can add some message to let users know to expect kernel error messages from the test.

Regards,
  Felix


Other processes are completely unaffected. The cause of the error is typically in user mode. I think the general policy is, that user mode errors should not spam the kernel logs with error messages. The messages are useful for debugging application issues, so it's good to have them. But IMHO they should not be error messages. Such messages often lead to spurious bug reports against the kernel for things that aren't really kernel issues.

Regards,
  Felix



So I'm absolutely not keen about reducing it to just an information.

Regards,
Christian.


Signed-off-by: Alex Sierra <alex.sierra@xxxxxxx>
---
  drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 14 +++++++-------
  drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 14 +++++++-------
  drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c   |  4 ++--
  drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c    |  8 ++++----
  drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c    |  8 ++++----
  drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c    |  8 ++++----
  drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c    | 20 ++++++++++----------
  drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c  | 14 +++++++-------
  drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c  | 14 +++++++-------
  9 files changed, 52 insertions(+), 52 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
index 6e0ace2fbfab..c226a4803086 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c
@@ -79,25 +79,25 @@ gfxhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev,
      u32 cid = REG_GET_FIELD(status,
                  GCVM_L2_PROTECTION_FAULT_STATUS, CID);
  -    dev_err(adev->dev,
+    dev_info(adev->dev,
          "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
          status);
-    dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
+    dev_info(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
          cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : gfxhub_client_ids[cid],
          cid);
-    dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
+    dev_info(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",
+    dev_info(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",
+    dev_info(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",
+    dev_info(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",
+    dev_info(adev->dev, "\t RW: 0x%lx\n",
          REG_GET_FIELD(status,
          GCVM_L2_PROTECTION_FAULT_STATUS, RW));
  }
diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
index ff738e9725ee..fdcca1477592 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
@@ -82,25 +82,25 @@ gfxhub_v2_1_print_l2_protection_fault_status(struct amdgpu_device *adev,
      u32 cid = REG_GET_FIELD(status,
                  GCVM_L2_PROTECTION_FAULT_STATUS, CID);
  -    dev_err(adev->dev,
+    dev_info(adev->dev,
          "GCVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
          status);
-    dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
+    dev_info(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
          cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" : gfxhub_client_ids[cid],
          cid);
-    dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
+    dev_info(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",
+    dev_info(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",
+    dev_info(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",
+    dev_info(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",
+    dev_info(adev->dev, "\t RW: 0x%lx\n",
          REG_GET_FIELD(status,
          GCVM_L2_PROTECTION_FAULT_STATUS, RW));
  }
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
index a455e59f41f4..864fcc0edb90 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
@@ -148,14 +148,14 @@ static int gmc_v10_0_process_interrupt(struct amdgpu_device *adev,
      memset(&task_info, 0, sizeof(struct amdgpu_task_info));
      amdgpu_vm_get_task_info(adev, entry->pasid, &task_info);
  -    dev_err(adev->dev,
+    dev_info(adev->dev,
          "[%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, 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 0x%x (%s)\n", +    dev_info(adev->dev, "  in page starting at address 0x%016llx from client 0x%x (%s)\n",
          addr, entry->client_id,
          soc15_ih_clientid_name[entry->client_id]);
  diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
index ec291d28edff..3d830fd7706b 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
@@ -620,7 +620,7 @@ static void gmc_v6_0_vm_decode_fault(struct amdgpu_device *adev,       mc_id = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
                    MEMORY_CLIENT_ID);
  -    dev_err(adev->dev, "VM fault (0x%02x, vmid %d) at page %u, %s from '%s' (0x%08x) (%d)\n", +    dev_info(adev->dev, "VM fault (0x%02x, vmid %d) at page %u, %s from '%s' (0x%08x) (%d)\n",
             protections, vmid, addr,
             REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
                   MEMORY_CLIENT_RW) ?
@@ -1083,11 +1083,11 @@ static int gmc_v6_0_process_interrupt(struct amdgpu_device *adev,
          gmc_v6_0_set_fault_enable_default(adev, false);
        if (printk_ratelimit()) {
-        dev_err(adev->dev, "GPU fault detected: %d 0x%08x\n",
+        dev_info(adev->dev, "GPU fault detected: %d 0x%08x\n",
              entry->src_id, entry->src_data[0]);
-        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x%08X\n", +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x%08X\n",
              addr);
-        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n", +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n",
              status);
          gmc_v6_0_vm_decode_fault(adev, status, addr, 0);
      }
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
index 979da6f510e8..1f3ceb03b47b 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
@@ -781,7 +781,7 @@ static void gmc_v7_0_vm_decode_fault(struct amdgpu_device *adev, u32 status,       mc_id = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
                    MEMORY_CLIENT_ID);
  -    dev_err(adev->dev, "VM fault (0x%02x, vmid %d, pasid %d) at page %u, %s from '%s' (0x%08x) (%d)\n", +    dev_info(adev->dev, "VM fault (0x%02x, vmid %d, pasid %d) at page %u, %s from '%s' (0x%08x) (%d)\n",
             protections, vmid, pasid, addr,
             REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
                   MEMORY_CLIENT_RW) ?
@@ -1286,11 +1286,11 @@ static int gmc_v7_0_process_interrupt(struct amdgpu_device *adev,
          gmc_v7_0_set_fault_enable_default(adev, false);
        if (printk_ratelimit()) {
-        dev_err(adev->dev, "GPU fault detected: %d 0x%08x\n",
+        dev_info(adev->dev, "GPU fault detected: %d 0x%08x\n",
              entry->src_id, entry->src_data[0]);
-        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x%08X\n", +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x%08X\n",
              addr);
-        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n", +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n",
              status);
          gmc_v7_0_vm_decode_fault(adev, status, addr, mc_client,
                       entry->pasid);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
index 382dde1ce74c..5be3f4f77c49 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
@@ -1021,7 +1021,7 @@ static void gmc_v8_0_vm_decode_fault(struct amdgpu_device *adev, u32 status,       mc_id = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
                    MEMORY_CLIENT_ID);
  -    dev_err(adev->dev, "VM fault (0x%02x, vmid %d, pasid %d) at page %u, %s from '%s' (0x%08x) (%d)\n", +    dev_info(adev->dev, "VM fault (0x%02x, vmid %d, pasid %d) at page %u, %s from '%s' (0x%08x) (%d)\n",
             protections, vmid, pasid, addr,
             REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
                   MEMORY_CLIENT_RW) ?
@@ -1466,12 +1466,12 @@ static int gmc_v8_0_process_interrupt(struct amdgpu_device *adev,
          memset(&task_info, 0, sizeof(struct amdgpu_task_info));
          amdgpu_vm_get_task_info(adev, entry->pasid, &task_info);
  -        dev_err(adev->dev, "GPU fault detected: %d 0x%08x for process %s pid %d thread %s pid %d\n", +        dev_info(adev->dev, "GPU fault detected: %d 0x%08x for process %s pid %d thread %s pid %d\n",               entry->src_id, entry->src_data[0], task_info.process_name,
              task_info.tgid, task_info.task_name, task_info.pid);
-        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x%08X\n", +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x%08X\n",
              addr);
-        dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n", +        dev_info(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n",
              status);
          gmc_v8_0_vm_decode_fault(adev, status, addr, mc_client,
                       entry->pasid);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
index 22761a3bb818..98c8de7307be 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
@@ -582,14 +582,14 @@ static int gmc_v9_0_process_interrupt(struct amdgpu_device *adev,
      memset(&task_info, 0, sizeof(struct amdgpu_task_info));
      amdgpu_vm_get_task_info(adev, entry->pasid, &task_info);
  -    dev_err(adev->dev,
+    dev_info(adev->dev,
          "[%s] %s page fault (src_id:%u ring:%u vmid:%u "
          "pasid:%u, for process %s pid %d thread %s pid %d)\n",
          hub_name, retry_fault ? "retry" : "no-retry",
          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 IH client 0x%x (%s)\n", +    dev_info(adev->dev, "  in page starting at address 0x%016llx from IH client 0x%x (%s)\n",
          addr, entry->client_id,
          soc15_ih_clientid_name[entry->client_id]);
  @@ -611,11 +611,11 @@ static int gmc_v9_0_process_interrupt(struct amdgpu_device *adev,
      WREG32_P(hub->vm_l2_pro_fault_cntl, 1, ~1);
    -    dev_err(adev->dev,
+    dev_info(adev->dev,
          "VM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
          status);
      if (hub == &adev->vmhub[AMDGPU_GFXHUB_0]) {
-        dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
+        dev_info(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
              cid >= ARRAY_SIZE(gfxhub_client_ids) ? "unknown" :
              gfxhub_client_ids[cid],
              cid);
@@ -648,22 +648,22 @@ static int gmc_v9_0_process_interrupt(struct amdgpu_device *adev,
              mmhub_cid = NULL;
              break;
          }
-        dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
+        dev_info(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
              mmhub_cid ? mmhub_cid : "unknown", cid);
      }
-    dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
+    dev_info(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",
+    dev_info(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",
+    dev_info(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",
+    dev_info(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
          REG_GET_FIELD(status,
          VM_L2_PROTECTION_FAULT_STATUS, MAPPING_ERROR));
-    dev_err(adev->dev, "\t RW: 0x%x\n", rw);
+    dev_info(adev->dev, "\t RW: 0x%x\n", rw);
      return 0;
  }
  diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
index 636abd855686..ec8c8b2cab36 100644
--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c
@@ -150,7 +150,7 @@ mmhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev,
      rw = REG_GET_FIELD(status,
                 MMVM_L2_PROTECTION_FAULT_STATUS, RW);
  -    dev_err(adev->dev,
+    dev_info(adev->dev,
          "MMVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
          status);
      switch (adev->ip_versions[MMHUB_HWIP][0]) {
@@ -169,21 +169,21 @@ mmhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev,
          mmhub_cid = NULL;
          break;
      }
-    dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
+    dev_info(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
          mmhub_cid ? mmhub_cid : "unknown", cid);
-    dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
+    dev_info(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
          REG_GET_FIELD(status,
          MMVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS));
-    dev_err(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
+    dev_info(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
          REG_GET_FIELD(status,
          MMVM_L2_PROTECTION_FAULT_STATUS, WALKER_ERROR));
-    dev_err(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
+    dev_info(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
          REG_GET_FIELD(status,
          MMVM_L2_PROTECTION_FAULT_STATUS, PERMISSION_FAULTS));
-    dev_err(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
+    dev_info(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
          REG_GET_FIELD(status,
          MMVM_L2_PROTECTION_FAULT_STATUS, MAPPING_ERROR));
-    dev_err(adev->dev, "\t RW: 0x%x\n", rw);
+    dev_info(adev->dev, "\t RW: 0x%x\n", rw);
  }
    static void mmhub_v2_0_setup_vm_pt_regs(struct amdgpu_device *adev, uint32_t vmid, diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c
index ff44c5364a8c..72dda850e7d3 100644
--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c
+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c
@@ -87,7 +87,7 @@ mmhub_v2_3_print_l2_protection_fault_status(struct amdgpu_device *adev,
      rw = REG_GET_FIELD(status,
                 MMVM_L2_PROTECTION_FAULT_STATUS, RW);
  -    dev_err(adev->dev,
+    dev_info(adev->dev,
          "MMVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n",
          status);
      switch (adev->ip_versions[MMHUB_HWIP][0]) {
@@ -100,21 +100,21 @@ mmhub_v2_3_print_l2_protection_fault_status(struct amdgpu_device *adev,
          mmhub_cid = NULL;
          break;
      }
-    dev_err(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
+    dev_info(adev->dev, "\t Faulty UTCL2 client ID: %s (0x%x)\n",
          mmhub_cid ? mmhub_cid : "unknown", cid);
-    dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
+    dev_info(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
          REG_GET_FIELD(status,
          MMVM_L2_PROTECTION_FAULT_STATUS, MORE_FAULTS));
-    dev_err(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
+    dev_info(adev->dev, "\t WALKER_ERROR: 0x%lx\n",
          REG_GET_FIELD(status,
          MMVM_L2_PROTECTION_FAULT_STATUS, WALKER_ERROR));
-    dev_err(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
+    dev_info(adev->dev, "\t PERMISSION_FAULTS: 0x%lx\n",
          REG_GET_FIELD(status,
          MMVM_L2_PROTECTION_FAULT_STATUS, PERMISSION_FAULTS));
-    dev_err(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
+    dev_info(adev->dev, "\t MAPPING_ERROR: 0x%lx\n",
          REG_GET_FIELD(status,
          MMVM_L2_PROTECTION_FAULT_STATUS, MAPPING_ERROR));
-    dev_err(adev->dev, "\t RW: 0x%x\n", rw);
+    dev_info(adev->dev, "\t RW: 0x%x\n", rw);
  }
    static void mmhub_v2_3_setup_vm_pt_regs(struct amdgpu_device *adev,




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux