[PATCH v2] drm/amdgpu: replace VM fault error by info logs
Felix Kuehling
felix.kuehling at amd.com
Mon Apr 25 16:23:17 UTC 2022
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 at amd.com>
>>> ---
>>> 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,
>>
More information about the amd-gfx
mailing list